Python:如何根据条件替换掩码数组中的值

Python:如何根据条件替换掩码数组中的值,python,arrays,numpy,Python,Arrays,Numpy,我有一个数组。我想将值>5替换为1,值简单地说: >>> a[a != 999] = (a[a != 999] > 5) >>> a array([[[ 0, 0, 999], [ 0, 1, 0]], [[999, 1, 1], [ 1, 1, 1]]]) a=np.分段(a[a5,a=999],[01999]) 我想只要一行就行了……即使这一行比我回答的那一行长,(

我有一个数组。我想将值
>5
替换为
1
,值
简单地说:

>>> a[a != 999] = (a[a != 999] > 5)
>>> a
array([[[  0,   0, 999],
        [  0,   1,   0]],

       [[999,   1,   1],
        [  1,   1,   1]]])
a=np.分段(a[a<5,numpy.logical_和(a>5,a=999],[01999])

我想只要一行就行了……

即使这一行比我回答的那一行长,(+1)因为我指出了
np。分段的
:-)我不知道它的存在。谢谢你,@Joran。但这对我来说似乎有点复杂:-)我昨天问的正是。。。
>>> mask_a = (a==999)
>>> a_masked = numpy.ma.masked_array(a, mask = mask_a)
>>> print a_masked
[[[2 5 --]
  [0 12 1]]

 [[-- 8 7]
  [7 11 6]]]
>>> a_masked[a_masked<=5]=0
>>> print a_masked
[[[0 0 --]
  [0 12 0]]

 [[-- 8 7]
  [7 11 6]]]
>>> a_masked[a_masked>5]=1
>>> print a_masked
[[[0 0 1]
  [0 1 0]]

 [[1 1 1]
  [1 1 1]]]
    [[[0 0 --]
      [0 1 0]]

     [[-- 1 1]
      [1 1 1]]]
>>> a[a != 999] = (a[a != 999] > 5)
>>> a
array([[[  0,   0, 999],
        [  0,   1,   0]],

       [[999,   1,   1],
        [  1,   1,   1]]])
a = np.piecewise(a, [a < 5, numpy.logical_and(a > 5,a <999) ,a >= 999], [0, 1,999])