我希望做的是“掩盖”一个数组的子集,该数组有j
个元素,范围从0
到k
。例如,对于这个数组:
[0.2, 0.1, 0.3, 0.4, 0.5]
掩盖前两个元素后,它变成了:
[NaN, NaN, 0.3, 0.4, 0.5]
掩码数组是否支持此操作?
我希望做的是“掩盖”一个数组的子集,该数组有j
个元素,范围从0
到k
。例如,对于这个数组:
[0.2, 0.1, 0.3, 0.4, 0.5]
[NaN, NaN, 0.3, 0.4, 0.5]
In [51]: arr=np.ma.array([0.2, 0.1, 0.3, 0.4, 0.5],mask=[True,True,False,False,False])
In [52]: print(arr)
[-- -- 0.3 0.4 0.5]
或者,如果您已经有一个numpy数组,您可以使用np.ma.masked_less_equal(有关掩盖特定元素的其他操作,请参见链接):
In [53]: arr=np.array([0.2, 0.1, 0.3, 0.4, 0.5])
In [56]: np.ma.masked_less_equal(arr,0.2)
Out[57]:
masked_array(data = [-- -- 0.3 0.4 0.5],
mask = [ True True False False False],
fill_value = 1e+20)
或者,如果您希望遮盖前两个元素:
In [67]: arr=np.array([0.2, 0.1, 0.3, 0.4, 0.5])
In [68]: arr=np.ma.array(arr,mask=False)
In [69]: arr.mask[:2]=True
In [70]: arr
Out[70]:
masked_array(data = [-- -- 0.3 0.4 0.5],
mask = [ True True False False False],
fill_value = 1e+20)
ma.array([1,2,3,4], mask=[1,1,0,0]) masked_array(data = [-- -- 3 4], mask = [ True True False False], fill_value = 999999)