np.mat和np.matrix的区别

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)。创建了一个新的相同的矩阵。当修改新矩阵时,原来的矩阵不会改变。两者之间除了长相相同以外,没有任何瓜葛。

猜你喜欢

转载自blog.csdn.net/ChenglinBen/article/details/88045305
np