![449be7a0cbf7d38799a929b0a9d3a1c0.png](https://i-blog.csdnimg.cn/blog_migrate/8c7e6ffeb129d6f157852c44fa8732b8.jpeg)
numpy的属性
array=np.array([[1,2,3],[2,3,4]]) #将python列表转换成numpy的数组
print(‘number of dim:’,array.ndim) #打印出数组的维数
pirnt(‘shape’,array.sharp) #打印出数组的行列数
print(‘size:’,array.size) #打印出数组的元素总个数
numpy创建array
a=np.array([2,23,4],dtype=http://np.int) #使用dtype定义数据类型,包含np.int,np.float er al
print(a.dtype)
a=np.zeros((2,3)) #生成2行3列,数值全部为零的数组
a=np.ones((3,4),dtype=np.int16) #定义3行4列,数值全部为1的数组
a=np.empty((3,4)) #生成的是3行4列,数值接近于0的数组
a=np.arange(10,20,2) #生成从10到19,步长为2的数组
a=np.arrange(12).reshape((3,4)) #生成从0到11,3行4列的数组
a=np.linspace(1,10,20).reshape((2,3)) 生成从1到10,样本数据量为20的等差数列,使用reshape可以更改数组的行列数
numpy的基础运算
a=np.array([10,20,30,40])
b=np.arrange(4)
c=a-b #array的减法,对应元素逐个相减
c=b**2 #b的平方
c=np.sin(a) #对a的每个值求sin()值
print(b<3) #判断b中哪些元素小于3,返回的是bool型数值
数组乘法
a=np.array([[1,1],[0,1]])
b=np.arrange(4).reshape(2,2)
c=a*b #numpy数组对应元素相乘
c_dot=np.dot(a,b) #矩阵乘法,点乘
c_dot2=a.dot(b) #矩阵乘法的另一种写法
a=np.random.random((2,4)) #生成2行4列的随机数数组
np.sum(a) #求和
np.min(a) #返回最小值
np.max(a) #返回最大值
np.argmin(a) #搜索最小值的索引
np.argmax(a) #搜索最大值的索引
np.sum(a,axis=1) #axis对数据的某一维度求和,axis=1表示压缩列,即将每一行的元素相加,将矩阵压缩为一列,axis=0表示压缩行,即将每一列的元素相加,将矩阵压缩为一行)
np.mean(a) #求平均值
a.mean() #求平均值的另一种形式
np.medium(a) #求中位数
np.cumsum(a) #按照所给定的轴参数返回元素的梯形累计和,元素个数与原数组相同
np.diff(a) #执行的是后一个元素减去前一个元素
np.nonzero(a) #用于得到数组array中非零元素的位置(数组索引)的函数
np.sort(a) #对数组进行排序,多维数组会逐行进行排序
np.transpose(a) #矩阵转置
a.T #矩阵转置的另一种写法
np.clip(a,a_min,a_max) #该函数的作用是将数组a中的所有数限定到范围a_min和a_max中,所有比a_min小的数都会强制变为a_min,所有比a_max大的数都会强制变为a_max
numpy的索引
A=np.arange(3,15)
print(A[3]) #输出索引为3的数组元素
A=np.arange(3,15).reshape((4,4))
print(A[2]) #当数据为二维数组时,A[2]表示输出数组的第二行
print(A[2][1]) #输出数组的第二行第一列
print(A[2,1]) #输出数组的第二行第一列
print(A[2,:]) #输出第2行的所有数
print(A[1,1:2]) #输出第1行的第1到第2列
for row in A:
print(row) #迭代数组中的每一行
for column in A.T:
print(column) #迭代数组中的每一列
for item in A.flat: #把A转换成一维数组
print(item) #迭代数组中的每一个元素
numpy的array合并
A=np.array([1,1,1])
B=np.array([2,2,2])
C=np.vstack((A,B)) # vertical stack A,B 上下的合并
D=np.hstack((A,B)) # horizontal stack A,B左右合并
E=A[np.newaxis,:] #数组在行上增加了一个维度,此时E.shape为(1,3)
F=A[:,np.newaxis] #数组在列上增加了一个维度,此时F.shape为(3,1)
G=np.concatenate((A,B,B,A),axis=0) #在行这个维度进行合并
numpy的array分割
A=np.arange(12).reshape(3,4)
np.split(A,2,axis=1) #将二维数组A按列进行平均分割
np.array_split(A,3, axis=1) #将二维数组A按列进行不均等的分割
np.vsplit(A,3) #将二维数组A在纵向上等分成3个数组
np.hsplit(A,2) #将二维数组A在水平方向上等分成2个数组
numpy的copy&deep copy
a=np.arange(4)
b=a #b和a是完全一样的
>>> b is a
>>> true
b =a .copy() #deep copy,这里的copy()只是把a的值copy过去了,但是并没有把a和b关联起来,所以改变a的元素,b并不会发生改变
>>>b=a.copy()
>>>a[3]=44
>>>a
array([0,1,2,44])
>>>b
array([0,1,2,3])