今天在编写一个小算法的时候,有很多之前常用的函数都忘记了,还得重新去查简直不要太浪费时间!我将遇到的一些函数进行一下整理,以便自己查找起来方便。(以下为随即整理)
import numpy as np提取矩阵的某一行或者某一列
a = np.arange(9).reshape(3,3) a
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
#矩阵的某一行 a[1]
array([3, 4, 5])
#矩阵的某一列 a[:,1]
array([1, 4, 7])
#生成对角矩阵 b = np.eye(3,3) b
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
#将矩阵的某一列赋给另一列 b[:,1]=a[:,1] b
array([[1., 1., 0.],
[0., 4., 0.],
[0., 7., 1.]])
计算矩阵的均值
mat =np.array([[1,2],[3,4]]) mat1 = np.matrix([[1,2],[3,4]]) print(mat) print(mat1)
[[1 2] [3 4]] [[1 2] [3 4]]
axis = 0计算每一列的均值
axis = 1计算每一行的均值
print(np.mean(mat,axis=0)) print(np.mean(mat,axis=1))
[2. 3.] [1.5 3.5]np.array()和np.mat()的区别
1.生成数组所需格式不同
mat可以从字符串或列表中生成;array只能从列表中生成
a = np.mat(data='1, 2; 3, 4') b = np.array([[1, 2], [3, 4]]) print(a) print(b)
[[1 2] [3 4]] [[1 2] [3 4]]
2.计算方式不同
np.array()生成的数组:np.dot()表示矩阵乘积;* 或者multiply表示点乘
print(np.dot(b,b)) print(b*b) print(np.multiply(b, b))
[[ 7 10] [15 22]] [[ 1 4] [ 9 16]] [[ 1 4] [ 9 16]]
np.mat()生成的数组,( * )和np.dot()相同,点乘只能用np.multiply()
a = np.mat([[1, 1],[1, 1]]) b = np.mat([[2, 2],[2, 2]]) print(np.dot(a,b))
[[4 4] [4 4]]
print(a*a)
[[2 2] [2 2]]
print(np.multiply(a, b))
[[2 2] [2 2]]



