import numpy as np
a = np.array([2,23,4],[3,54,5],[4,24,1])
定义array的type
import numpy as np
a =np.array([2,34,5],dtype=np.int)#a =np.array([2,34,5],dtype=np.float)
输出数字为0或者1的矩阵
import numpy as np
#输出一个三行、四列的矩阵,其中数字全为0:
a = np.zeros((3,4))#输出一个三行、四列的矩阵,其中数字全为1:
b = np.ones((3,4),dtype=np.int16)
两个矩阵对应的相乘
import numpy as np
a = np.array([[1,1],[0,1]])
b = np.arrange(4).reshape((2,2))
c = a*b
#c :[0 1]# [0 3]
两个矩阵相乘
import numpy as np
a = np.array([[1,1],[0,1]])
b = np.arrange(4).reshape((2,2))
c_dot = np.dot(a,b)#c :[2 4]# [2 3]
最大/最小值/求和(返回行/列的数字)
import numpy as np
a = np.random.random((2,4))print(a)print(np.sum(a,axis=1))#在每一行当中的求和,会返回两个数,分别代表第一/第二行的求和print(np.min(a,axis=0))#每一列的最小值print(np.max(a,axis=1))#每一行的最大值
最大/最小值(返回是第几个数)/平均值/中位数
import numpy as np
A = np.arrange(2,14).reshape((3,4))print(np.argmin(A))# 打印:比如第一个数最大,则打印0print(np.argmax(A))# 打印:比如第十个数最大,则打印9print(np.mean(A))# 7.5 求平均值 或print(A.mean())或 print(np.average(A))是一样的print(np.mean(A,axis=0))# 计算每一列的平均值print(np.mean(A,axis=1))# 计算每一行的平均值print(np.median(A))# 7.5 中位数
累差/累加
import numpy as np
A = np.arrange(2,14).reshape((3,4))print(np.cusum(A))#累加print(np.diff(A))#累差
逐行排序
import numpy as np
A = np.arrange(2,14,-1).reshape((3,4))print(np.sort(A))#按照从小到大 逐行排序
矩阵的转置
import numpy as np
A = np.arrange(2,14,-1).reshape((3,4))print(np.transpose(A))print(A.T)#这两个表达方式都可以
clip功能
import numpy as np
A = np.arrange(2,14,-1).reshape((3,4))print(np.clip(A,5,9))# 让所有小于5的数字等于5,大于9的数字等于9,5和9之间的数字不变
索引
import numpy as np
A = np.arrange(3,15).reshape((3,4))print(A[2,1])#打印出第3行第2列的数字12print(A[2,:])#打印出第3行的所有数print(A[:,1])#打印出第2列的所有数print(A[1,1:2])#打印出第2行的第2列到第3列的所有数for row in A:print(row)#打印出每一行的数for column in A.T :print(column)#因为for column in A 这样打出的是每一行,所以用A.T就相当于打出了每一列
把多行多列的矩阵一个一个数字打出来
import numpy as np
A = np.arrange(3,15).reshape((3,4))for item in A.flat:print(item)
如何合并array
import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])print(np.vstack((A,B)))# 上下的合并(Vertical stack) # 打印: [[111]# [222]]print(np.hstack((A,B)))# 左右合并(horizontal stack)#打印: [1 1 1 2 2 2]
把只有一行的横向的序列变成竖向的矩阵
import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])print(A[:,np.newaxis].shape)#在后面加了一个维度 打印:(3,1)print(A:np.newaxis,:].shape)#在前面加了一个维度 打印:(1,3)print(A[:,np.newaxis])#打印出纵向的111
多个array纵向或者横向的合并
import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.concatenate((A,B,B,A),axis=0)#上下维度合并
分割array(对等的分割)
import numpy as np
A = np.arrange(12).reshape((3,4))print(np.split(A,2,axis=1))#分成两块,对 列 分割print(np.split(A,3,axis=1))#会报错,因为4列分成3块,不对等print(np.split(A,3,axis=0))#分成三块,横向分割
分割array(不对等的分割)
import numpy as np
A = np.arrange(12).reshape((3,4))print(np.array_split(A,3,axis=1))print(np.vsplit(A,3))#纵向分print(np.hsplit(A,3))#横向分
赋值
import numpy as np
a = np.arange(4)
b = a
c = a
d = b
#则 a,b,c,d完全等价,改变a里的一个元素,b,c,d中全都会变#如果不想这样
b = a.copy()# deep copy#这样只是把值赋给了b, b 不会指向 a,修改a ,b的值并不会变化