[Numpy-discussion] bug in ma.masked_all()?

Pierre GM pgmdevlist at gmail.com
Tue Dec 2 03:16:02 EST 2008


Eric,
That's quite a handful you have with this dtype...
So yes, the fix I gave works with nested dtypes and flexible dtypes  
with a simple name (string, not tuple). I'm a bit surprised with  
numpy, here.
Consider:

 >>> dt.names
  ('P', 'D', 'T', 'w', 'S', 'sigtheta', 'theta')

So we lose the tuple and get a single string instead, corresponding to  
the right-hand element of the name..
But this single string is one of the keys of dt.fields, whereas the  
tuple is not. Puzzling. I'm sure there must be some reference in the  
numpy book, but I can't look for it now.

Anyway:
Prior to version 6127, make_mask_descr was substituting the 2nd  
element of each tuple of a dtype.descr by a bool. Which failed for  
nested dtypes. Now, we check the field corresponding to a name, which  
fails in our particular case.


I'll be working on it...



On Dec 2, 2008, at 1:59 AM, Eric Firing wrote:

> dt = np.dtype([((' Pressure, Digiquartz [db]', 'P'), '<f4'), (('  
> Depth [salt water, m]', 'D'), '<f4'), ((' Temperature [ITS-90, deg  
> C]', 'T'), '<f4'), ((' Descent Rate [m/s]', 'w'), '<f4'), (('  
> Salinity [PSU]', 'S'), '<f4'), ((' Density [sigma-theta, Kg/m^3]',  
> 'sigtheta'), '<f4'), ((' Potential Temperature [ITS-90, deg C]',  
> 'theta'), '<f4')])
>
> np.ma.zeros((2,2), dt)




More information about the NumPy-Discussion mailing list