howto make Python list from numpy.array?

Robert Kern robert.kern at gmail.com
Sun May 6 17:00:08 EDT 2007


dmitrey wrote:
> Thanks all.
> I tried all the approaches but they don't work in my situation
> I have a variable x that can be
> x = 1
> x = [1, 2, 3]
> x = numpy.array([1,2,3])
> so all troubles are with 1st case
>>>> x=1
>>>> list(x)
> Traceback (most recent call last):
>   File "<string>", line 1, in <string>
> TypeError: iteration over non-sequence
>>>> list(array(1))
> Traceback (most recent call last):
>   File "<string>", line 1, in <string>
> ValueError: Rank-0 array has no length.
>>>> array(1).tolist()
> Traceback (most recent call last):
>   File "<string>", line 1, in <string>
> ValueError: rank-0 arrays don't convert to lists.
> 
> Here I used Python 2.4.3, numpy 1.02

All of these results are entirely correct. A scalar (or rank-0 array) is not a
sequence.

If you have a need to transform a scalar into a sequence (e.g. transform 1 to
[1]), then you can use numpy.atleast_1d(x).tolist().

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco




More information about the Python-list mailing list