所以我有一个数组:
array([[[27, 27, 28],
[27, 14, 28]],
[[14, 5, 4],
[ 5, 6, 14]]])
我如何遍历它并在每次迭代中获得 [a, b, c] 值,我这样尝试:
for v in np.nditer(a):
print(v)
但它只是打印
27
27
28
27
14
28
14
5
4
5
6
我需要:
[27 27 28]
[27 14 28]...
原文由 karambaq 发布,翻译遵循 CC BY-SA 4.0 许可协议
显然你想迭代数组的前 2 个维度,返回第 3 个维度(作为 1d 数组)。
双循环很好,重塑为 (4,2) 和迭代也是如此。
nditer
通常不需要,也不鼓励将其作为迭代机制(其文档需要更强的免责声明)。它确实适用于 C 级代码。它在 Python 级代码中用得不多。一个例外是np.ndindex
函数,它在这种情况下很有用:ndindex
使用nditer
在multi_index
指定形状的临时数组上的模式。尽可能尝试在没有迭代的情况下工作。使用任何这些技巧的迭代都相对较慢。