2016-02-09 89 views
0

改变fill_value如何从65536.0一个蒙面numpy的阵列的填充值更改为-9999.0为numpy的阵列

改编

masked_array(data = 
[[-- -- -- ..., -- -- --] 
[-- -- -- ..., -- -- --] 
[-- -- -- ..., -- -- --] 
..., 
[-- -- -- ..., -- -- --] 
[-- -- -- ..., -- -- --] 
[-- -- -- ..., -- -- --]], 
      mask = 
[[ True True True ..., True True True] 
[ True True True ..., True True True] 
[ True True True ..., True True True] 
..., 
[ True True True ..., True True True] 
[ True True True ..., True True True] 
[ True True True ..., True True True]], 
     fill_value = 65536.0) 

我试过numpy.ma.fill_value,但它不工作

+1

还请看'ma.filled'。您可以根据您的需要使用不同的填充。 – hpaulj

回答

1

你需要的属性直接设置或使用np.ma.set_fill_value

import numpy as np 
a = np.ma.array([1,2,3]) 
print(a.fill_value) # 999999 

a.fill_value = -100 
print(a.fill_value) # -100 

np.ma.set_fill_value(a, -999) 
print(a.fill_value) # -999 

根据您的dtype(如果它是np.uint),负值会导致ValueError

如果这不起作用,请提供一些关于numpy/python版本和阵列dtype的更多信息。