1、Numpy创建array
创建数组
- np.array([list],dtype=np.int32)生成一个格式为int 32的数组
- np.zeros()生成全部为0的数组
- np.ones()生成全部为1的数组
- np.empty()生成一个空数组
- np.linspace(1,10,5)生成1到10 间隔为5的数列
- np.reshape((n,n)) 强制转换格式为n*n
numpy基础运算
- a=np.array([10.20.30.40])
- b=np.arange(4)
- c=a+b 逐个相加
- b**n 输出b的n次方
- c=np.sin(a)求a中每个值的sin值
- np.dot(a,b)矩阵乘法 或者 a.dot(b)
- a*b 逐个相乘
- np.random.random((2,5))随机生成一个2*5的数组
- np.max(list,axis=0)返回list的每一列上的最大值
- np.max(list,axis=1)返回list的每一行上的最大值
- np.argmin(a)返回a中最小值所在的位置
- a.mean or np.mean(a) 输出a的均值
- np.cumsum(a) 返回一个list,每n位表示a中前n位的和
- np.diff(a) 返回a中每两位的差
- np.nonzero(a) 返回两个list,其组合为非0值的位置
- np.transpose(a) or a.T 返回a的转置矩阵
- np.clip(a,max,min) 输出一个数组,其中其中大于max的全部用max代替,小于min的全部用min代替
Numpy索引
- A[2] 输出a的第二行
- A [2] [3] 输出a的第二行、第三列的一个元素
- A[1,2:3] 输出a的第一行 、第一个到第三个元素
- for row in A: 默认先迭代A的每一行
- for col in A.T 迭代A的每一列
- A.flatten() 将a打平成1行1列
Numpy数组合并
- np.vstack((a,b)) 将ab合并,a是第一行b是第二行(上下合并)
- np.hstack((a,b)) 将啊,b合并 ,a在左,b在右 (左右合并)
- a[np.newaxis,:] 在a的列上加入新的维度
- a[:,np.newaxis] 在a的行上加入维度
- np.concatenate((a,b,c),axis=0) 对多个数组在行维度进行合并
Numpy数组的分割
- np.split(ary,indices_or_sections,axis = 0) 将数组ary在axis的维度上分成n份(这里的split只能进行相等的分割。比如将34的矩阵分成两个32)
- np.array_split(ary,indices_or_sections,axis = 0) 将数组ary在axis上进行任意分割
- np.vsplit(A,n)将a横向分割,只能等分
- np.hsplit(A,n)将a竖向分割,只能等分
Numpy的copy
- 若a= np.arange(4),a=b 直接用等号复制的时候,numpy默认a is b。这时a,b关联 任何对a,b的操作都会改变a,b的值。(类似于指针?)
- 为了解决上面的问题,采用 b = a.copy(a) 只是把值赋值过去,而不将ab关联