On Mon, Feb 28, 2011 at 10:52 PM, Wes McKinney <[email protected]> wrote: > On Mon, Feb 28, 2011 at 7:24 PM, Pierre GM <[email protected]> wrote: >> >> On Mar 1, 2011, at 1:05 AM, Bruce Southey wrote: >> >>> On Mon, Feb 28, 2011 at 4:52 PM, Wes McKinney <[email protected]> wrote: >>>> I'm having some trouble with the zeros_like function via np.fix: >>>> >>>> def zeros_like(a): >>>> if isinstance(a, ndarray): >>>> res = ndarray.__new__(type(a), a.shape, a.dtype, order=a.flags.fnc) >>>> res.fill(0) >>>> return res >>>> try: >>>> wrap = a.__array_wrap__ >>>> except AttributeError: >>>> wrap = None >>>> a = asarray(a) >>>> res = zeros(a.shape, a.dtype) >>>> if wrap: >>>> res = wrap(res) >>>> return res >>>> >>>> As you can see this is going to discard any metadata stored in a >>>> subtype. I'm not sure whether this is a bug or a feature but wanted to >>>> bring it up. >>>> >>>> Thanks, >>>> Wes >>>> _______________________________________________ >>>> NumPy-Discussion mailing list >>>> [email protected] >>>> http://mail.scipy.org/mailman/listinfo/numpy-discussion >>>> >>> >>> I guess this is ticket 929. >>> http://projects.scipy.org/numpy/ticket/929 >>> >>> I was looking at it today but was not sure what is really desired >>> here. I considered that this just meant shape and dtype but not sure >>> about masked or record arrays behavior. So: >>> What is the value of having the metadata? >>> What is the meaning of 'like' here? >> >> Well, that depends on what you wanna do, of course. To handle metadata, I >> use some kind of dictionary updated in the __array_finalize__. Check >> numpy.ma.MaskedArray and its subclasses (like scikits.timeseries.TimeSeries) >> for the details. >> Now that you could store some extra data in the dtype (if I remmbr and >> understand correctly), it might be worth considering a proper way to deal >> with that. >> >> >> _______________________________________________ >> NumPy-Discussion mailing list >> [email protected] >> http://mail.scipy.org/mailman/listinfo/numpy-discussion >> > > The ticket is exactly related to the problem at hand-- having > __array_finalize__ defined won't help you as it never gets called. >
Looks like this commit fixed the problem, so the ticket can be closed https://github.com/numpy/numpy/commit/c9d1849332ae5bf73299ea1268f6a55f78624688#numpy/core/numeric.py _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
