[Numpy-discussion] Setting element to masked in a masked array previously containing no masked values

Jesper Larsen jl at dmi.dk
Mon Jun 25 05:12:01 EDT 2007


Hi numpy users,

I have a masked array. I am looping over the elements of this array and 
sometimes want to set a value to missing. Normally this can be done by:

myarray.mask[i] = True

However the mask attribute is not indexable when there are no existing missing 
values in the array (it is simply False). In this case I therefore get an 
error message:

myarray.mask[i] = True
TypeError: object does not support item assignment

Is the best way to solve the problem to do something like this:

mask = ma.getmaskarray(myarray)
for i in range(n):
  if blahblah:
    mask[i] = True
myarray = ma.array(myarray, copy=False, mask=mask)

or is there a more elegant solution?

Does anyone by the way have any pointers to documentation of the masked array 
features of numpy? I know that it is treated in the numarray manual but it 
seems like there are some important syntax differences that make this manual 
of little use in that regard.

- Jesper



More information about the NumPy-Discussion mailing list