[Numpy-discussion] bug in ma.masked_all()?
Eric Firing
efiring at hawaii.edu
Tue Dec 2 04:26:35 EST 2008
Pierre GM wrote:
> Eric,
> That's quite a handful you have with this dtype...
Here is a simplified example of how I made it:
dt = np.dtype({'names': ['a','b'], 'formats': ['f', 'f'], 'titles':
['aaa', 'bbb']})
From page 132 in the numpy book:
The fields dictionary is indexed by keys that are the names of the
fields. Each entry in the dictionary is a tuple fully describing the
field: (dtype, offset[,title]). If present, the optional title can
actually be any object (if it is string or unicode then it will also be
a key in the fields dictionary, otherwise it’s meta-data).
--------
I put the titles in as a sort of additional documentation, and thinking
that they might be useful for labeling plots; but it is rather hard to
get the titles back out, since they are not directly accessible as an
attribute, like names. Probably I should just omit them.
Eric
> 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)
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
More information about the NumPy-Discussion
mailing list