例如,当我想使用numpy蒙面数组作为索引时,我遇到了一些麻烦:
import numpy as np
a=np.array([0,1,2,3,4,5])
b=np.array([[0,1],[3,5]])
>>> a[b]
array([[0, 1],
[3, 5]]
好吧,问题是b中的数字3不是我想要的。我想要geti的结果就像
a[b]=array([[0, 1],
[5]])
所以我使用了numpy.ma:
b=np.ma.masked_equal(b,3)
>>> b
masked_array(data =
[[0 1]
[-- 5]],
mask =
[[False False]
[ True False]],
fill_value = 3)
>>> a[b]
array([[0, 1],
[3, 5]])
正如我们所看到的,屏蔽值仍然可以作为索引,有没有办法解决它?
答案 0 :(得分:0)
>>> np.ma.masked_array(a[b.data], b.mask)
masked_array(data =
[[0 1]
[-- 5]],
mask =
[[False False]
[ True False]],
fill_value = 999999)