1. numpy的引入
import numpy as np
2. 列表转换为矩阵
array=np.array([1,2,3],[2,3,4])
3. numpy的属性
维度number of dim: array.ndim
形状shape: array.shape
大小size:array.size
4. 创建array
可以创建一维、二维矩阵
a=np.array([2,3,4],dtype=np.int64) #dtype=int32\int64\float32...
创建全0矩阵:b=np.zeros((3,4))
创建全1矩阵:c=np.ones((2,3))
创建随机矩阵:a=np.empty((3,4))
创建确定范围内的矩阵:d=np.arange(10,20,2) #起始值为10,终止值为20,步长2
重新定义形状:b=np.arange(12).reshape((3,4))
创建分段矩阵:e=np.linespace(1,10,5) #起始值为1,终止值为10,分为5段(5个值,4等分)
5. 基本运算
eg:
a=np.array([10,20,30,40]) #a=[10,20,30,40]
b=np.array(4) #b=[0,1,2,3]
加减法:c=a+b #c=[10,21,32,43],对应元素相加
乘除法:d=a*b #d=[0,20,60,120], 对应元素相乘
矩阵的乘法:h=np.dot(k,g)/ h=k.dot(g)
三角函数运算:e=10*np.sin(a) #各元素计算sin值后再乘以10
布尔判断:print(b<3) #[True True True False]
随机生成array: a=np.random.random((2,4))
求和、求最大值、求最小值:np.sum(a)、np.min(a)、np.max(a)
在行/列中求和(最大值、最小值): 行:np.sum(a,axis=1),列:np.sum(a,axis=0)
排序:np.sort(A)
矩阵的转置:np.transpose(a) #转置不能将一维的横向向量转变为多维的竖向矩阵,即:转置不能提升数组的维度
数值过滤:np.clip(A,5,9)#过滤掉矩阵A中不属于5~9范围内的数
求最小(大)值的索引:np.argmin(A)
求平均值:np.mean(A)/A.mean()/np.average(A)
求中位数:np.median(A)
累加:np.cumsum(A)
累差:np.diff(A)
非零数的下标:np.nonzero(A)
6. 索引操作:
迭代每一行:for row in A:...
迭代每一列:for column in A.T:...
将A矩阵转换成一行数据:A.flatten()
7. array合并:
A=np.array([1,1,1])
B=np.array([2,2,2])
C=np.vstack((A,B)) #vertical stack 上下合并,C.shape=(2,3)
D=np.hstack((A,B)) #horizontal stack 左右合并,C.shape=(6,)
增加维度:A[:,np.newaxis]
在某维度合并array: np.concatenate((A,B,B,A),axis=0)
8. array分割:
横向分割:np.split(A,2,axis=1) #2为分割的块数,平均分割
np.array_split(A,3,axis=1) #不等分割,每块的维度随机分配
np.hsplit(A,3)
纵向分割:np.vsplit(A,3)
9. 复制array:
a=np.arange(4)
b=a
c=b
a is b is c,三者改变其中一个,全都会改变(指向同一对象)
copy复制:b=a.copy() #仅复制不关联