NumPy的flatten()可以返回一个2D数组吗?

时间:2015-11-17 18:55:24

标签: numpy

NumPy的flatten()可以返回2D数组吗?

我将flatten()应用于形状(12L, 54L)的数组,然后我得到了一个新的形状(1L, 648L)数组。这应该不时发生吗?如果是这样,在哪种情况下会发生这种情况?

我使用的是NumPy 1.9.2。

1 个答案:

答案 0 :(得分:5)

与NumPy数组不同,NumPy matrices 始终是2D对象。因此,在NumPy矩阵上调用flatten会返回另一个2D矩阵,尽管其形状为(1, N)

In [112]: x = np.matrix(np.random.randint(10, size=(12,54)))

In [116]: x.shape
Out[116]: (12, 54)

In [117]: x.flatten().shape
Out[117]: (1, 648)

如果将矩阵转换为数组,则flatten将返回1D数组:

In [125]: np.asarray(x).flatten().shape
Out[125]: (648,)