array + where return type: scalar vs. array
Travis Oliphant
oliphant.travis at ieee.org
Wed Oct 25 01:20:13 CDT 2006
Michael McNeil Forbes wrote:
> Could someone please explain the semantics of the following.
>
>
>>>> from numpy import *
>>>> a1 = array([1,2,3])
>>>> a2 = array([[1,2,3]])
>>>> a1[where(a1==3)],a2[where(a2==3)]
>>>>
> (array([3]), 3)
>
> Why are 1-dimensional fundamentally different than N-dimensional arrays
> in this regard? When there is a single match, N-d arrays always return
> a scalar whereas 1-d arrays return an array.
>
> Is this a bug?
>
Yes, it's a bug. The optimization for a[0,2] was being called in this
case because the arrays with 1 element were being interpreted as
integers. I beefed-up the conversion check and fixed this in SVN.
Thanks for the check.
Now both have the same shape.
-Travis
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
More information about the Numpy-discussion
mailing list