簡體   English   中英

在numpy蒙面數組中替換值

[英]Substituting values in a numpy masked array

我試圖在一個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

我認為你沒有正確地進行替換,試試這個:

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