数组:
m = np.array()
专门的矩阵:np.mat() 但不建议使用
压缩矩阵:sparse.csr_matrix(m) #from scipy import sparse
m.shape m.size m.ndim
常用数组操作:
#vectorize 类将一个函数转换成另一个函数,本质是在做循环,不会提升性能,还是广播比较好用
add_100 = lambda i: i+100
v_add_100 = np.vectorize(add_100)
v_add_100(m)
np.max(m,axis=1) #axis=1 每一行最大值 /min /mean /std
m.reshape() #参数值 -1,表示可以“根据需要填充元素”
m.flatten() #将矩阵转为一维数组 等价于reshape(1,-1)
矩阵操作:
np.linalg.matrix_rank(m) #秩(维数)
np.linalg.det(m) #行列式
np.linalg.eig(m) #特征值,特征向量
np.linalg.inv(m) #矩阵的逆
np.add(m,n) #矩阵元素相加
np.subtract(m,n) #相减
np.dot(m,n) #点乘 或者 m @n
m *n #矩阵相同位置元素相乘
m.diagonal() #获取对角线元素 offset 参数在主对角线的上下偏移
m.trace() #迹,对角元素之和
随机数:
np.random.seed(0)
np.random.random(3) #生成0-1之间的随机数
np.random.randint(1,10,3)
np.random.normal(0.0, 1.0, 3) #
np.random.logistic()
np.random.uniform()