如何在python中使用蒙面数组作为索引?

时间:2017-05-12 17:30:11

标签: python arrays numpy

例如,当我想使用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]])

正如我们所看到的,屏蔽值仍然可以作为索引,有没有办法解决它?

1 个答案:

答案 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)