【发布时间】:2018-03-13 22:50:43
【问题描述】:
我通读了 numpy 文档,尤其是关于在 for 循环中迭代 ndarray 的内容。通读建议的类似 S.O.帖子,但我仍然无法解决看似相对简单的问题。
我想合并基于一个 ndarray 值的条件,同时以元素方式迭代不同的 ndarray。这是我的代码:
import numpy as np
array1 = np.array([10,20,30,40,50])
array2 = np.array([-1,-1,1,0,1])
for x in np.nditer(array1,flags=['refs_ok']):
if array2[x] < 0:
#code-block here executing several tasks
关于 if 语句,我收到以下错误:“IndexError:索引 10 超出轴 0 的范围,大小为 5”。
代码块必须以时间序列方式执行,因此是 for 循环。不知道发生了什么。
【问题讨论】:
-
nditer不适合初学者。如果必须迭代,请使用纯 Python 循环(i 在范围内...)。 -
好建议,谢谢
标签: python arrays numpy for-loop iteration