Mikhail Genkin
Mikhail Genkin

Reputation: 3460

Python: converting multi-dimensional numpy arrays into list of arrays

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,).

Upvotes: 0

Views: 129

Answers (2)

jh314
jh314

Reputation: 27812

How about using list:

a=np.array([[1,2],[3,4]])
b = list(a)

Upvotes: 5

Sheldore
Sheldore

Reputation: 39072

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])]

Upvotes: 3

Related Questions