[Numpy-discussion] Ransom Proposals
Tim Hochberg
tim.hochberg at cox.net
Mon Mar 27 14:09:03 CST 2006
Travis Oliphant wrote:
> Tim Hochberg wrote:
>
>>>
>>> Yes, having this ability means that you have to think about it a bit
>>> if you are going to use the functional interface and try to do
>>> in-place operations. But, I would argue that this is an "advanced"
>>> usage which is implemented to save space and time.
>>
>>
>>
>> How is this true though? In what way, for instance, is:
>>
>> b = asarray(a).reshape(newshape)
>>
>> slower or less space efficient than todays:
>>
>> b = reshape(a)
>
>
>
> Well, the big difference is that b=reshape(a) is actually
>
> try:
> reshape = a.reshape
> except AttributeError:
> return a.__array_wrap__(asarray(a).reshape(newshape))
>
> return reshape(newshape)
>
> So, it handles more cases, more cleanly then the
> asarray(a).rehsape(newshape) approach does.
OK. Although I should have said asanyarray(a).reshape(newshape), I
still see how that this handles more cases. I do not agree that it is
worth the attendant drawbacks and I would still like to see these
functions spun off into a separate namespace.
I need to go think about this case some more. This is not something that
I've run into in practice, but I can see I'll have a stronger case if I
can come up with a alternative to this in terms of safe functions. Do
you have some examples of objects that do not have 'reshape', but do
have '__array_wrap__'?
-tim
More information about the Numpy-discussion
mailing list