Suppose I have 2D array
, for simplicity, a=np.array([[1,2],[3,4]])
. I want to convert it to list
of arrays, so that the result would be:
b=[np.array([1,2]), np.array([3,4])]
I found out that there is np.ndarray.tolist()
function, but it converts N-D array into nested list
. I could have done in a for
loop (using append
method), but it is not efficient/elegant.
In my real example I am working with 2D arrays of approximately 10000 x 50 elements and I want list
that contains 50 one dimensional arrays, each of the shape (10000,)
.
-
To iterate on the 2nd dimension, you may want to transpose the array first.hpaulj– hpaulj2018年08月20日 15:38:23 +00:00Commented Aug 20, 2018 at 15:38
2 Answers 2
How about using list
:
a=np.array([[1,2],[3,4]])
b = list(a)
1 Comment
Why don't you use list comprehension as follows without using any append
:
a=np.array([[1,2],[3,4]])
b = [i for i in a]
print (b)
Output
[array([1, 2]), array([3, 4])]
6 Comments
[i for i in a]
is a verbose way of sayin list(a)
list
will be faster.