当我创建一个 Numpy 掩码数组的视图(通过切片)时,掩码被复制到视图中——因此对视图的更新不会更改原始掩码(但会更改原始数组中的数据)。
我想要的是在更新视图时同时更改原始数据和原始掩码。
从Numpy 文档:
访问切片时,输出是一个掩码数组,其数据属性是原始数据的视图,其掩码是 nomask(如果原始数组中没有无效条目)或原始相应切片的副本面具。需要副本以避免将掩码的任何修改传播到原始文件。
例子
import numpy.ma as ma
orig_arr = ma.array([[11,12],[21,22]])
orig_arr[1,:] = ma.masked
print orig_arr
## Prints: [[11 12]
## [-- --]]
view_arr = orig_arr[1,:]
print view_arr
## Prints: [-- --]
view_arr[:] = [31,32]
print view_arr
## Prints: [31 32]
print orig_arr
## Prints: [[11 12]
## [-- --]]
print orig_arr.data[1,:]
## Prints: [31 32]
如您所见,原始数组中的数据已更新,但掩码没有。
如何使视图中的更新影响原始数组中的掩码?