Numpy中matrix必须是2维的,但是 numpy中array可以是多维的(1D,2D,3D····ND)。matrix是array的一个小的分支,包含于array。所以matrix 拥有array的所有特性。
matrix() 和 array() 的区别,主要从以下方面说起:
矩阵生成方式不同
importnumpy as np
a1= np.array([[1, 2], [3, 4]])
b1= np.mat([[1, 2], [3, 4]])
a2= np.array(([1, 2], [3, 4]))
b2= np.mat(([1, 2], [3, 4]))
a3= np.array(((1,2), (3,4)))
b3= np.mat(((1,2), (3,4)))
b4= np.mat(‘1 2; 3 4‘)print("\n",a1,"\n",b1,"\n",a2,"\n",b2,"\n",a3,"\n",b3,"\n",b4)
结果均为:
[[1 2]
[3 4]]
上述变化就是将 “[]” 换成“()”。不同之处在于 b4 内用引号、空格和分号来产生矩阵,这个方法只可以在 matrix() 函数中使用,即b4 = np.mat(‘1 2; 3 4‘)。不可以写成的 a4 = np.array(‘1 2; 3 4‘) 。
矩阵性质不同
matrix()和 array ()后面加上 .T 得到转置。但是matrix()还可以在后面加 .H 得到共轭矩阵, 加 .I 得到逆矩阵, array