[Numpy-discussion] Re: Bypassing a[2].item()?
Travis Oliphant
oliphant at ee.byu.edu
Thu Apr 20 20:16:02 CDT 2006
Robert Kern wrote:
>Ryan Gutenkunst wrote:
>
>
>>On Apr 20, 2006, at 5:18 PM, Robert Kern wrote:
>>
>>
>>
>>>Ryan Gutenkunst wrote:
>>>
>>>
>
>
>
>>>>2) If not, is it possible to get a "pure" scalar directly from an array
>>>>in one function call?
>>>>
>>>>
>>>float(x[0]) seems to be faster on my PowerBook.
>>>
>>>
>>It's faster for me, too, but float(x[0]) is still much slower than using
>>Numeric where x[0] suffices. I guess I'll just have to warn my users
>>away from the new scipy until numpy 0.9.8 comes out and scalar math is
>>sped up.
>>
>>
>
>For that matter, a plain "x[0]" seems to be about 3x faster with Numeric than numpy.
>
>
>
We are already special-casing the integer select code but could
special-case the getitem code so that if nd==1 a faster construction is
used. I think right now a 0-dim array is being created only to get
destroyed later on return. Please add a ticket as this extremely
common operation should be made as fast as possible.
This is a little tricky because array_big_item is called in a few places
and is expected to return an array. If it returns a scalar in those
places segfaults can occur. Either checks need to be made in each of
those cases or the special-casing needs to be in array_big_item_nice.
I'm not sure which I prefer....
-Travis
More information about the Numpy-discussion
mailing list