如何从掩码数组的索引获取二维数组的索引
How to get indices of a 2D array from index of the masked array
我需要在掩码数组的索引上循环的二维数组的原始索引。我试试:
for i in range(Arr[mask].size):
tmp = numpy.zeros(mask.shape, dtype=bool)
tmp[mask][i] = True
j,k = numpy.where(tmp)
...
不幸的是,最后一行returns
(array([], dtype=int64), array([], dtype=int64))
求j和k的好方法是什么?
由于它是一个二维数组,您可以简单地遍历掩码而不是遍历掩码数组:
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]
# ...
我需要在掩码数组的索引上循环的二维数组的原始索引。我试试:
for i in range(Arr[mask].size):
tmp = numpy.zeros(mask.shape, dtype=bool)
tmp[mask][i] = True
j,k = numpy.where(tmp)
...
不幸的是,最后一行returns
(array([], dtype=int64), array([], dtype=int64))
求j和k的好方法是什么?
由于它是一个二维数组,您可以简单地遍历掩码而不是遍历掩码数组:
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]
# ...