-
-
Notifications
You must be signed in to change notification settings - Fork 11.9k
Closed
Labels
component: numpy.mamasked arraysmasked arrays
Description
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)
Metadata
Metadata
Assignees
Labels
component: numpy.mamasked arraysmasked arrays