4

我正在尝试替换 a 中的一些值numpy masked array,但我的面具被丢弃了:

import numpy as np
a = np.ma.array([1, 2, 3, -1, 5], mask=[0, 0, 0, 1, 0])
a[a < 2] = 999

结果是:

masked_array(data = [999 2 3 999 5],
mask = [False False False False False],
fill_value = 999999)

但我想要的是:

masked_array(data = [999 2 3 -- 5],
mask = [False False False  True False],
fill_value = 999999)

我究竟做错了什么?我在 Ubuntu 13.10 上使用 Python 2.7 和 numpy 1.7.1

4

1 回答 1

4

我认为您没有正确进行替换,请尝试以下操作:

>>> import numpy as np
>>> a = np.ma.array([1, 2, 3, -1, 5], mask=[0, 0, 0, 1, 0])
>>> a.data[a < 2] = 999
>>> a
 masked_array(data = [999 2 3 -- 5],
         mask = [False False False  True False],
   fill_value = 999999)
于 2013-11-13T15:15:52.857 回答