我可以避免使用`asmatrix`吗?

时间:2013-02-16 00:13:50

标签: python numpy

我有没有办法直接创建矩阵而不必使用asmatrix?从我所看到的,Numpy中的所有典型矩阵函数(onesrand等)返回数组,而不是矩阵,这意味着(根据文档)asmatrix将复制数据。有什么方法可以避免这种情况吗?

1 个答案:

答案 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]])