我需要在蒙版数组的索引上循环生成2D数组的原始索引。我尝试:
for i in range(Arr[mask].size):
tmp = numpy.zeros(mask.shape, dtype=bool)
tmp[mask][i] = True
j,k = numpy.where(tmp)
...
不幸的是,最后一行返回了
(array([], dtype=int64), array([], dtype=int64))
找到j和k的好方法是什么?
答案 0 :(得分:0)
由于它是2D数组,因此您可以简单地在蒙版上进行迭代,而不必在蒙版数组上进行迭代:
for j, k in zip(*np.where(mask)):
value = Arr[j,k]
# ...
如果您还想获取当前(被屏蔽的)值的编号:
for i, (j, k) in enumerate(zip(*np.where(mask))):
value = Arr[j,k]
# ...