没有合适的资源?快使用搜索试试~ 我知道了~
首页Numpy基础总结(博客资源备份)
资源详情
资源评论
资源推荐

博
客
园
首
页
新
随
笔
联
系
订
阅
管
理
随笔111文章0评论1
Numpy
基
础
总
结
一
、
文
件
读
取
numpy.genfromtxt()
可
以
用
来
读
取各
种
文
件
。
常
用
语
法
大
致
如
下
:
numpy.genfromtxt
(fname,dtype=<type'float'>,delimiter=None,skip_header=0,skip_footer=0)
fname要导入的文件路径
dtype指定要导入文件的类型,dtype=str/int等等
delimiter文件中不同元素间的间隔方式,空格还是逗号什么的,如:delimiter=',';
skip_header是否跳过开头行,一般第一行为类别,为0不跳过,为1或者2则跳过前面1或者2行
importnumpy
students=numpy.genfromtxt("student_list.txt",delimiter=",",dtype=str,skip_header=0)
二
、
构
造
ndarray
1
、
NumPy
的
数
组
类
被
称
作
ndarray
,
通
常
被
称
作
数
组
。
np.array只是一个便捷的函数,用来创建一个ndarray,它本身不是一个类。
ndarray:N维数组对象(矩阵),所有元素必须是相同类型。
ndarray属性:
ndim属性,表示维度个数;
shape属性,表示各维度大小;
dtype属性,表示数据类型。
创建ndarray数组函数:
array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会
copy出一个副本,占用新的内存,但asarray不会,直接指向A的地址。
公
告
昵称:理想几岁
园龄:1年4个月
粉丝:5
关注:1
+加关注
< 2018
年
10
月
>
日 一 二 三 四 五 六
30 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
4 5 6 7 8 9 10
搜
索
常
用
链
接
我的随笔
我的评论
我的参与
最新评论
我的标签
我
的
标
签
机器学习(21)
tensorflow(7)
Python(7)
R语言(7)
Django(6)
自然语言处理(5)
神经网络(4)
深度学习(3)
MySQL(3)
LDA(2)
更多
随
笔
档案
2018年10月(4)
2018年9月(6)
2018年8月(15)
2018年7月(21)
2018年6月(5)
2018年5月(10)
2018年4月(8)
2018年3月(14)
理
想
几
岁

numpy.array()
构
造
ndarray
numpy.array()中传入数组参数,可以是一维的也可以是二维三维的。numpy会将其转变成ndarray的结
构。
vector=numpy.array([1,2,3,4])
matrix=numpy.array([[1,2,3],[4,5,6]])
传
入
的
参
数
必
须
是
同
一
结
构
,
不
是
同
一
结
构
将
发
生
转
换
。
vector=numpy.array([1,2,3,4])#均为int型
array([1,2,3,4])
vector=numpy.array([1,2,3,4.0])#转为float类型
array([1.,2.,3.,4.])
vector=numpy.array([1,2,'3',4])#转为str类型
array(['1','2','3','4'],dtype='<U21')
利
用
.shape
查
看
结
构
能够了解array的结构,debug时通过查看结构能够更好地了解程序运行的过程。
print(vector.shape)
print(matrix.shape)
(4,)
(2,3)
利
用
dtype
查
看
类
型
vector=numpy.array([1,2,3,4])
vector.dtype
dtype('int64')
ndim
查
看
维
度
vector=numpy.array([1,2,3,4])
vector.ndim
1
matrix=numpy.array([[1,2,3],
[4,5,6],
[7,8,9]])
matrix.ndim
2
size
查
看
元
素
数
量
matrix.size
9
2
、
数
组
和
矩
阵
matrix
的
区
别
(
matrix
和
array
的
区
别
)
Numpymatrix必须是2维的,但是numpyarrays(ndarrays)可以是多维的(1D,2D,3DꞏꞏꞏꞏND).Matrix
是Array的一个小的分支,包含于Array。所以matrix拥有array的所有特性。但这时候,官方建议大家如果
两个可以通用,那就选择array,因为array更灵活,速度更快,很多人把二维的array也翻译成矩阵。
但是matrix的优势就是相对简单的运算符号,比如两个矩阵相乘,就是用符号*,但是array相乘不能这么
用,得用方法.dot()
2018年1月(5)
2017年12月(9)
2017年11月(4)
2017年10月(8)
2017年9月(2)
2017年8月(1)
最
新
评论
1.Re:Linux下iptables禁止端口和开放端口
赞❥
Subfire
阅
读
排
行
榜
1.Linux下iptables禁止端口和开放端口
(40485)
2.Ubuntu16.04安装Redis(15151)
3.linux下创建virtualenv时指定python版本
(6656)
4.Python的Django框架中forms表单类的使
用方法详解(4369)
5.linux将一个服务器上的文件或者文件夹
复制到另一台服务器上(3036)
评论
排
行
榜
1.Linux下iptables禁止端口和开放端口(1)
推
荐
排
行
榜
1.R语言之数据处理常用包(1)

matrix和array都可以通过objects后面加
.T
得到其
转
置
。但是matrixobjects还可以在后面加.H得到
共
轭
矩
阵
,加
.I
得到
逆
矩
阵
。
在numpy里面arrays遵从逐个元素的运算,所以array:c和d的c*d为对应元素相乘,而矩阵相乘,则需要
numpy里面的dot命令。
a=np.mat('43;21')
b=np.mat('12;34')
print(a)
#[[43]
#[21]]
print(b)
#[[12]
#[34]]
print(a*b)
#[[1320]
#[58]]
c=np.array([[4,3],[2,1]])
d=np.array([[1,2],[3,4]])
print(c*d)
#[[46]
#[64]]
print(np.dot(c,d))
#[[1320]#[58]]
>>>a=np.mat([[4+2j3],[21]])
>>>a
matrix([[4.+2.j,3.+0.j],
[2.+0.j,1.+0.j]])
>>>a.H
matrix([[4.2.j,2.0.j],
[3.0.j,1.0.j]])
>>>a.I
matrix([[0.250.25j,0.75+0.75j],
[0.50+0.5j,0.501.5j]])>>>b=np.array([[4,3],[2,1]])
>>>b.T
array([[4,2],
[3,1]])
>>>b.H
Traceback(mostrecentcalllast):
File"<stdin>",line1,in<module>
AttributeError:'numpy.ndarray'objecthasnoattribute'H'
**
运算符的作用也不一样
a=np.mat([[4,3],[2,1]])
c=np.array([[4,3],[2,1]])
print(a**2)
#[[2215]
#[107]]
print(c**2)
#[[169]
#[41]]
因为a是个matrix,所以a**2返回的是a*a,相当于矩阵相乘。而c是array,c**2相当于,c中的元素逐个求平
方。
问
题
就
出
来
了
,
如
果
一个
程
序
里
面
既
有
matrix
又
有
array
,
会
让
人
脑
袋
大
。
但
是
如
果
只
用
array
,
你
不仅
可
以
实
现
matrix
所
有
的
功
能
,
还
减
少
了
编
程
和
阅
读
的
麻
烦
。
三
、
获
取
与
计
算
剩余12页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0