我注意到通过 np.stack
, np.dstack
将 2D 数组组合到 3D 数组 的解决方案,或者仅在数组具有相同的 .shape[0]
时传递数组列表才有效 ---
。
例如,假设我有:
print(arr)
[[0 1]
[2 3]
[4 5]
[6 7]
[8 9]]
很容易到达:
print(np.array([arr[2:4], arr[3:5]])) # same shape
[[[4 5]
[6 7]]
[[6 7]
[8 9]]]
但是,如果我传递一个长度不等的数组列表,我会得到:
print(np.array([arr[:2], arr[:3]]))
[array([[0, 1],
[2, 3]])
array([[0, 1],
[2, 3],
[4, 5]])]
我怎样才能简单地:
[[[0, 1]
[2, 3]]
[[0, 1]
[2, 3]
[4, 5]]]
我尝试过的:许多其他 数组操作例程。
注意:最终想要对 2 个以上的阵列执行此操作,因此 np.append
可能并不理想。
原文由 Brad Solomon 发布,翻译遵循 CC BY-SA 4.0 许可协议
Numpy 数组必须是矩形的,因此使用 numpy 数组无法获得您想要获得的内容。
你需要一个不同的数据结构。哪一个合适取决于你想用这些数据做什么。