简体   繁体   中英

create a list of list of N-dimensional numpy arrays

I want to create a list of list of 2x2 numpy arrays

array([[0, 0],
       [1, 1]])

for example I want to fill a list with 8 of these arrays.

x = [] 

for j in range(9):
    for i in np.random.randint(2, size=(2, 2)):
        x.append([i])

this gives me a 1x1 array

z = iter(x)

next(z)

[array([0, 1])]

what am I missing here ?

You missed that are iterating over a 2x2 array 9 times. Each iteration yields a row of the array which is what you see when you look at the first element - the first row of the first matrix. Not only that, you append this row within a list, so you actually have 18 lists with a single element. What you want to do is append the matrix directly, with no inner loop and definitely no additional [] around, or better yet:

x = [np.random.randint(2, size=(2, 2)) for _ in range(9)]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM