np.mat和np.matrix的区别
np.mat(data,dtype = None)
interpret the input as a matrix
与np.matrix()不同。如果输入本身就是一个矩阵,则np.mat不会对该矩阵make a copy.仅仅是创建了一个新的引用。相当于np.matrix(data, copy = False)
import numpy as np
if __name__ == '__main__':
X = np.matrix([[1,2,3]
,[4,5,6],
[7,8,9]])
X1 = np.mat(X)
print(X1)
X[0,0] = 2
print(X1)
X1[0,0] = 3
print(X)
print(X1)
输出结果如下:
[[1 2 3]
[4 5 6]
[7 8 9]]
[[2 2 3]
[4 5 6]
[7 8 9]]
[[3 2 3]
[4 5 6]
[7 8 9]]
[[3 2 3]
[4 5 6]
[7 8 9]]
由此可以看到,无论是修改X矩阵,还是修改X1矩阵,只要修改这两者中的任何一个,两个矩阵都会改变。
np.matrix(data,copy = True)
而np.matrix则不然,默认为np.matrix(data, copy = True)。创建了一个新的相同的矩阵。当修改新矩阵时,原来的矩阵不会改变。两者之间除了长相相同以外,没有任何瓜葛。