numpy.matrix.A1和ravel之间的区别

时间:2018-02-26 05:16:38

标签: python numpy scipy

据我所知,我还没有看到任何重新发布的帖子,如果有的话,请注意我。

根据SciPy websitenumpy.matrix.A1相当于np.asarray(x).ravel()

  

一个例子足以说明问题:

x = np.matrix(np.arange(12).reshape((1, -1)))


print("Shape of x: ", x.shape)
print("Shape of x with asarray: ", np.asarray(x).shape)
print("Equality: ", np.array_equal(x, np.asarray(x)))
print("Shape of x ravel flatten: ", x.ravel().shape)
print("Shape of x ravel flatten with asarray: ", np.asarray(x).ravel().shape)
     

打印:

Shape of x:  (1, 12)
Shape of x with asarray:  (1, 12)
Equality:  True
Shape of x ravel flatten:  (1, 12)
Shape of x ravel flatten with asarray:  (12,)

问题:

如所观察到的,扁平数组的维度与asarray 不同,只是想知道为什么它会在尺寸上呈现这种不一致性?

np asarray函数的实现,我没有看到任何可能导致维度问题的事情,而且它通过了相等性测试(x == np.asarray(x))。但除此之外,可能会对数组进行隐式更改。

def asarray(a, dtype=None, order=None):
    return array(a, dtype, copy=False, order=order)

编辑:

这可能令人困惑

  

加上它通过了相等测试(x == np.asarray(x)

更确切地说,我的意思是,它通过了相等性测试(np.array_equal(x, np.asarray(x))

0 个答案:

没有答案