如何从蒙版数组的索引中获取2D数组的索引

时间:2018-07-30 12:04:32

标签: numpy indexing mask

我需要在蒙版数组的索引上循环生成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的好方法是什么?

1 个答案:

答案 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]
    # ...