matrix必须是两维的,array可以是多维的(1D,2D,3D,4D)
matrix是array的一个小的分支,包含与array,所有拥有array的所有特性
maxtrix主要优势是:相对简单的乘法运算符号,比如如果a、b都是maxtrix,那么a*b就是矩阵乘积
array矩阵要矩阵相乘要用np.dot
a = np.mat('4 3; 2 1')
b = np.mat('1 2; 3 4')
print(a*b)
>>> [[13 20]
>>> [5 8]]
matrix和array都可以通过objects后面加.T得到其转置。
但matrix objects还可以在后面加.H得到共轭矩阵,加.I得到逆矩阵
两个切换:
np.asmatrix和np.asarray
最大的不同是:
做np.mean运算的时候,array的维度会发生变化,maxtix总保持2维
>>> m = np.mat([[1,2],[2,3]])
>>> m
matrix([[1, 2],
[2, 3]])
>>> mm = m.mean(1)
>>> mm
matrix([[1.5],
[2.5]])
>>> mm.shape
(2, 1) # 维度不变
------------------------------------
>>> a = np.array([[1,2],[2,3]])
>>> a
array([[1, 2],
[2, 3]])
>>> am = a.mean(1)
>>> am
array([1.5, 2.5])
>>> am.shape
(2,) # 维度改变