如何获取所有未屏蔽元素的索引?以下是我正在努力解决的一个例子。我有两个大小相等的 numpy 数组,x 和 m。现在我想使用数组 m 作为 x 上的掩码来提取未掩码值的值和索引。我认为一些代码会更好地解释
numpy 数组 x & m
>>> x = np.array([[3,5,9],[6,0,7],[2,3,4]])
>>> x
array([[3, 5, 9],
[6, 0, 7],
[2, 3, 4]])
>>> m = np.array([[1,1,2],[2,1,1],[2,1,2]])
>>> m
array([[1, 1, 2],
[2, 1, 1],
[2, 1, 2]])
现在我想提取 x 的值,其中 m 等于 1
>>> mo = ma.array(m,mask=(m<>1))
>>> mo
masked_array(data =
[[1 1 --]
[-- 1 1]
[-- 1 --]],
mask =
[[False False True]
[ True False False]
[ True False True]],
fill_value = 999999)
>>> xm = ma.masked_array(x,mask=mo.mask, dtype=int)
>>> xm
masked_array(data =
[[3 5 --]
[-- 0 7]
[-- 3 --]],
mask =
[[False False True]
[ True False False]
[ True False True]],
fill_value = 999999)
我想要掩码为假的值的索引。现在我可以使用 ma 库中的非零函数,但我的数组也包含零值。可以看出,[1,1]
缺少值:
>>> xmindex = np.transpose(ma.MaskedArray.nonzero(xm))
>>> xmindex
array([[0, 0],
[0, 1],
[1, 2],
[2, 1]])
简而言之,如何获取所有未屏蔽元素的索引,而不仅仅是非零值?