2016-02-09 86 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的更多信息。