mike
mike

Reputation: 23811

Python List of np arrays to array

I'm trying to turn a list of 2d numpy arrays into a 2d numpy array. For example,

dat_list = []
for i in range(10):
    dat_list.append(np.zeros([5, 10]))

What I would like to get out of this list is an array that is (50, 10). However, when I try the following, I get a (10,5,10) array.

output = np.array(dat_list)

Thoughts?

Upvotes: 60

Views: 120829

Answers (3)

Anand
Anand

Reputation: 109

Above accepted answer is correct for 2D arrays as you requested. For 3D input arrays though, vstack() will give you a surprising outcome. For those, use stack(<list of 3D arrays>, 0).

Upvotes: 3

wim
wim

Reputation: 362716

you want to stack them:

np.vstack(dat_list)

Upvotes: 95

Messypuddle
Messypuddle

Reputation: 429

See https://docs.scipy.org/doc/numpy/reference/generated/numpy.append.html for details. You can use append, but will want to specify the axis on which to append.

dat_list.append(np.zeros([5, 10]),axis=0)

Upvotes: 1

Related Questions