When I create a view of a Numpy masked array (via slicing) the mask is copied to the view -- so that updates to the view will not change the mask in the original (but will change the data in the original array).
What I want is to change both the original data and the original mask when updating the view.
From the Numpy documentation:
When accessing a slice, the output is a masked array whose data attribute is a view of the original data, and whose mask is either nomask (if there was no invalid entries in the original array) or a copy of the corresponding slice of the original mask. The copy is required to avoid propagation of any modification of the mask to the original.
Example
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]
As you can see the data in the original array has been updated, but the mask hasn't.
How do I make updates in the view affect the mask in the original array?