据我所知,我还没有看到任何重新发布的帖子,如果有的话,请注意我。
根据SciPy website,numpy.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))
)