简体   繁体   English

在numpy蒙面数组中替换值

[英]Substituting values in a numpy masked array

I'm trying to substitute some values in a numpy masked array , but my mask is being dropped: 我试图在一个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

The result is: 结果是:

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

But what I want is: 但我想要的是:

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

What am I doing wrong? 我究竟做错了什么? I'm using Python 2.7 and numpy 1.7.1 on Ubuntu 13.10 我在Ubuntu 13.10上使用Python 2.7和numpy 1.7.1

I think you are not doing the substitution correctly, try this: 我认为你没有正确地进行替换,试试这个:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM