我有没有办法直接创建矩阵而不必使用asmatrix
?从我所看到的,Numpy中的所有典型矩阵函数(ones
,rand
等)返回数组,而不是矩阵,这意味着(根据文档)asmatrix
将复制数据。有什么方法可以避免这种情况吗?
答案 0 :(得分:1)
根据文件:
与矩阵不同,如果输入已经是a,则asmatrix不会复制 矩阵或ndarray。相当于矩阵(data,copy = False)。
因此,如果不需要,asmatrix
不复制数据:
>>> import numpy as np
>>> a = np.arange(9).reshape((3,3))
>>> b = np.asmatrix(a)
>>> b.base is a
True
>>> a[0] = 3
>>> b
matrix([[3, 3, 3],
[3, 4, 5],
[6, 7, 8]])