"dmitrey" <openopt@ukr.ne twrote in message
news:1178480447 .245977.293010@ n59g2000hsh.goo glegroups.com.. .
| howto make Python list from numpy.array?
I Googled 'numpy array Python list' and looked at the third hit
(PythonBasics) and at the bottom found your answer. About 30 seconds or
less.
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).toli st()
Traceback (most recent call last):
File "<string>", line 1, in <string>
ValueError: rank-0 arrays don't convert to lists.
>>howto make Python list from numpy.array?
>>Thx, D.
>>>
>lst = map(None, arr) // for 1D arrays.
>
Which can be expressed more simply as:
lst = list(arr)
For N-D arrays, that will give you a list of arrays. If you want a list of lists
(of lists of lists ... etc N times), use the .tolist() method of arrays.
--
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
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).tol ist()
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_1 d(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
On Sun, 06 May 2007 13:06:56 -0700, 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
Comment