Why does numpy.array(a[0],b[0]) have this meaning?

Marc 'BlackJack' Rintsch bj_666 at gmx.net
Mon Nov 3 03:52:58 EST 2008


On Sun, 02 Nov 2008 23:26:24 -0800, Rick Giuly wrote:

> Case 1
> This generates an error, which makes sense because the argument should
> be a list of numbers:
> numpy.array(10,10)
> 
> Case 2
> This does not generate an error and the result is an array with a single
> element:
> a = numpy.array([10])
> b = numpy.array([10])
> numpy.array(a[0],b[0])
> 
> The only different I see here between the numpy.array call in the cases
> is that
> a[0] is a numpy int32
> 10 is an int
> 
> Why would this minor difference in integer types cause a totally
> different result for the two cases - or is something else causing the
> difference in results?

>From the `numpy.array` docstring:

    Inputs:
      object - an array, any object exposing the array interface, any
                object whose __array__ method returns an array, or any
                (nested) sequence.

And `numpy.int32` instances have an `__array__()` method:

In [225]: ten = numpy.int32(10)

In [226]: ten.__array__()
Out[226]: array(10)

Ciao,
	Marc 'BlackJack' Rintsch



More information about the Python-list mailing list