Numpy matrix必须是2维的,但是 numpy arrays (ndarrays) 可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。
matrix 和 array 都可以通过objects后面加 . T .T .T 得到其转置。但是 matrix objects 还可以在后面加 . H .H .H 得到共轭矩阵, 加 . I .I .I 得到逆矩阵。
运算符的作用也不一样 :因为a是个matrix,所以a ** 2返回的是a*a,相当于矩阵相乘。而c是array,c**2相当于,c中的元素逐个求平方。
e =matrix([[1,2],[3,4]]) f =array([[1,2],[3,4]]) print(e**2) #运行结果: # [[ 7 10] # [15 22]] print(f**2) #运行结果 # [[ 1 4] # [ 9 16]]当然你可以通过下面的两条命令轻松的实现两者之间的转换:np.asmatrix和np.asarray
>>> from numpy import * >>> a = matrix([[1,0,],[0,1]]) >>> a matrix([[1, 0], [0, 1]]) >>> b= asarray(a) >>> b array([[1, 0], [0, 1]]) >>> c =asmatrix(b) >>> c matrix([[1, 0], [0, 1]])