The sample case of the issue ( https://github.com/numpy/numpy/issues/5558 ) is
shown below. A proposal to address this behavior can be found here (
https://github.com/numpy/numpy/pull/5580 ). Please give me your feedback.
I tried to change the mask of `a` through a subindexed view, but was unable.
Using this setup I can reproduce this in the 1.9.1 version of NumPy.
import numpy as np
a = np.arange(6).reshape(2,3)
a = np.ma.masked_array(a, mask=np.ma.getmaskarray(a), shrink=False)
b = a[1:2,1:2]
c = np.zeros(b.shape, b.dtype)
c = np.ma.masked_array(c, mask=np.ma.getmaskarray(c), shrink=False)
c[:] = np.ma.masked
This yields what one would expect for `a`, `b`, and `c` (seen below).
masked_array(data =
[[0 1 2]
[3 4 5]],
mask =
[[False False False]
[False False False]],
fill_value = 999999)
masked_array(data =
[[4]],
mask =
[[False]],
fill_value = 999999)
masked_array(data =
[[--]],
mask =
[[ True]],
fill_value = 999999)
Now, it would seem reasonable that to copy data into `b` from `c` one can use
`__setitem__` (seen below).
b[:] = c
This results in new data and mask for `b`.
masked_array(data =
[[--]],
mask =
[[ True]],
fill_value = 999999)
This should, in turn, change `a`. However, the mask of `a` remains unchanged
(seen below).
masked_array(data =
[[0 1 2]
[3 0 5]],
mask =
[[False False False]
[False False False]],
fill_value = 999999)
Best,
John_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion