28

NumPy 中是否有一种简单的方法来展平类型对象数组?

我知道 .flatten() 方法可以展平由相同大小的数组构造的非对象类型数组:

I1 a = np.array([[1],[2],[3]])

I2 a.flatten()
O2 array([1, 2, 3])

但是,我无法将 dtype=object 数组展平:

I4 b
O4 array([[1], [2, 3], [3]], dtype=object)

I5 b.flatten()
O5 array([[1], [2, 3], [3]], dtype=object)

谢谢。

4

2 回答 2

59

如果你想要 [1,2,3,3],试试这个

np.hstack(b)
于 2012-07-06T18:03:59.553 回答
0

如果您的数组不包含多个嵌套数组,则np.hstack(arr)函数将不起作用!

解决方法:

arr = np.array([[0]])
if arr.any():
    arr = np.hstack(arr)
else:
    arr = arr.flatten()
于 2022-01-14T23:29:18.660 回答