I can't really figure out if that's the case in your code, but if you need to repeat the mask along a new dimension (for instance, the first one), you can do:

numpy.tile(mask.mask, [number_of_repeats] + [1] * len(mask.mask.shape))

(not sure that's the most elegant way to do it, but it should work)

-=- Olivier

2011/11/21 questions anon <questions.anon@gmail.com>
Excellent, thank you.
I just realised this does not work with my data because of the extra dimension.
I have a mask that matches my 2-dimensional array but my data is for every hour over a month so the arrays do not match. Is there a way to make them match or mask each time?
thanks again

This is some of my code:


                        for ncfile in files:
                                if ncfile[-3:]=='.nc':
                                    print "dealing with ncfiles:", path+ncfile
                                    ncfile=os.path.join(path,ncfile)
                                    ncfile=Dataset(ncfile, 'r+', 'NETCDF4')
                                    TSFC=ncfile.variables['T_SFC'][:]
                                    TIME=ncfile.variables['time'][:]
                                    fillvalue=ncfile.variables['T_SFC']._FillValue
                                    TSFC=MA.masked_values(TSFC, fillvalue)
                                    ncfile.close()

                                    TSFC=MA.masked_array(TSFC, mask=newmask.mask)






On Tue, Nov 22, 2011 at 11:21 AM, Olivier Delalleau <shish@keba.be> wrote:
If your new array is x, you can use:

numpy.ma.masked_array(x, mask=mask.mask)

-=- Olivier

2011/11/21 questions anon <questions.anon@gmail.com>
I am trying to mask one array using another array.

I have created a masked array using
mask=MA.masked_equal(myarray,
0),
that looks something like:
[1  -  -  1,
 1  1  -  1,
 1  1  1  1,
 -   1  -  1]

I have an array of values that I want to mask whereever my mask has a a '-'.
how do I do this?
I have looked at http://www.cawcr.gov.au/bmrc/climdyn/staff/lih/pubs/docs/masks.pdf but the command:

d = array(a, mask=c.mask()

results in this error:
TypeError: 'numpy.ndarray' object is not callable

I basically want to do exactly what that article does in that equation.

Any feedback will be greatly appreciated.

_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion



_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion



_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion