一 创建ndarry
1.使用np.array()由list创建
注意:a.numpy默认ndarray的所有元素的类型是相同的
b.如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int
2.使用np的routines函数创建
1)np.ones(shapes,dtype=None,order='C')
2)np.zeros(shape,dtype=float,order='C')
3)np.full(shape,fill_value,dtype=None,order='C')
4)np.eye(N,M=None,k=0,dtype=float)
5)np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)
6)np.arange([start,]stop,[step,]dtype=None)
7)np.random.randint(low,high=None,size=None,dtype='I')
8)np.random.randn(d0,d1,...,dn) # 标准正太分布
9)np.random.normal(loc=0.0,scale=1.0,size=None)
10)np.random.random(size=None)
二 ndarray的属性
参数:
ndim:维度
shape:形状(各维度的长度)
size:总长度
dtype:元素类型
三 ndarry的基本操作
1.索引
一维与列表一致,多维时同理
nd[1]
根据索引修改数据
nd[1] = 100
2.切片
一维与列表一致,多维时同理
nd[0:2]
将数据反转
nd[::-1]
3.变形
使用reshape函数,参数为类型为typle
4.级联
np.concatenate()级联需要注意的点:
级联的参数是列表,一定要加中括号或小括号
维度必须相同
形状相符
级联的方向默认的是shape的tuple的第一个值所代表的维度方向
可通过axis参数改变级联的方向
1.np.htack与np.vstack
水平级联与垂直级联,处理自己,进行维度的变更
5.切分
与级联类似,三个函数完成切分工作
np.split
np.vsplit
np.hsplit
6.副本
所有赋值运算不会为ndarray的任何元素创建副本。对赋值后的对象的操作也对原来的对象生效。
可使用copy()函数创建副本
四 ndarray的聚合操作
1.求和np.sum
2.最大、最小值np.max/np.min
3.其他聚合操作
五 ndarray的矩阵操作
1.基本矩阵操作,并不是真正的矩阵操作
1)算术运算符
加减乘除
2)矩阵乘积np.dot()
2.广播机制
广播机制的规则:
为缺失的维度补1
假定缺失元素用已有值填充
六 ndarray的排序
1.快速排序
np.sort()与ndarray.sort()的区别:
np.sort()不改变输入
ndarray.sort()本地处理,不占用空间,但改变输入
2.部分排序
np.partition(a,k)
k为正时,得到最小的k个数
k为负时,得到最大的k个数