Numpy基础
1.1 numpy基本属性
numpy不是python自带的库,需要我们自己安装,可以去网上找安装教程,windows可以安装anaconda,这样对于好多常用的库都可以方便使用。使用时候需要先导入:
import numpy as np
之后可以用np.xxx的形式使用numpy库,下边是一些基本的属性:
array=np.array([[1,2,3],
[4,5,6]])
array.ndim 维度
array.shape 行列
array.size 大小
1.2创建array
array=np.array(列表)
array=np.array(列表,dtype=np.int/np.int32/np.float/np.float32) 设置数据类型
array=np.zero((行,列)) 全零矩阵
array=np.ones((行,列)) 全1矩阵
array=np.empty((行,lie)) 空矩阵(实际是一个非常接近0的矩阵)
array=np.arange(start,stop,step) 从start开始到stop的序列,步长为step
array=np.reshape((行,列)) 重新定义形状
array=np.linspace(start,stop,段) 根据段得多少,自动确定步长
array=np.random.random((行,列)) 0~1之间得随机数
np.min(array) 最小值
np.max(array) 最大值
np.sum(array) 求和
可以选择 axis=1对列进行操作 axis=0 行操作
1.3基础运算
-:逐个元素相减
+:逐个元素相加
*:逐个元素相乘
/:逐个元素相除
**:乘方
矩阵相乘:np.dot(a,b)或者,a.dot(b)
三角函数:np.sin(a) np.tan(a) np.cos(a)
A<3: 逐个判断A中元素和3得关系,返回True/False
np.argmin(a) 最小值索引
np.argmax(a) 最大值
np.mean(a) 平均值
np.median 中位数
np.clip(a,b,c) 将a中得值限制在b和c之间,所有小于b得都等于b,大于c得都等于c
np.cumsum() 逐步相加,返回每一步得结果
np.diff() 元素之间差
np.nonzero() 判断非零得数,返回两个array,第一个是非零元素得行标,第二个是列标
np.sort() 排序
np.transpose() 转置,或者:a.T
1.4 numpy得索引
a[索引号] a[行][列] a[行,列] a[行,:] a[:,列] a[行,s1:s2]
for row in a: 逐行迭代
for col in a.T: 逐列迭代
a.flat a.flatten 变成一行的序列
1.5 numpy合并
np.vstack((a,b)) 垂直合并
np.hstack((a,b)) 水平合并
transpose 不能将行向量变成列向量,用如下的方法:
a[:,np.newaxis]
np.concatenate((a,b,c,d,……,axis=0/1) 0垂直合并,1水平合并
1.6 分割
np.split(a,2,axis=0/1) 1是案列分开,0是按行分开 但是只能等分割
np.array.split(参数同上) 可以不等分割,4列分成三个片段
np.vsplit(a,3) 纵向分割
np.hsplit(a,2) 横向分割
1.7 copy和deep copy
(1) = :例如a=b,实际上a,b占用同一段内存空间,改变a的值,b页改变
(2) deep.copy : b=a.copy() 仅将a的值给b,不是同一段空间