Как сделать двумерный массив кортежей в python? - PullRequest
0 голосов
/ 19 марта 2020

Я хочу сделать двумерный массив из двух кортежей фиксированного размера (скажем, 10x10).

например,

[[(1,2), (1,2), (1,2)],
 [(1,2), (1,2), (1,2)],
 [(1,2), (1,2), (1,2)]]

Есть также два способа, которыми я хотел бы создать этот массив:

  1. Массив, подобный примеру выше, где каждый элемент тот же кортеж
  2. массив, который я итеративно заполняю заданными c кортежами (возможно, начиная с пустого массива фиксированного размера и затем используя присваивание)

Как бы я go об этом? Для # 1 я попытался использовать numpy.tiles:

>>> np.tile(np.array([1,2]), (3, 3))
array([[1, 2, 1, 2, 1, 2],
       [1, 2, 1, 2, 1, 2],
       [1, 2, 1, 2, 1, 2]])

Но я не могу скопировать его по столбцам, столбцы просто объединены.

т.е. вместо:

[[[1,2], [1,2], [1,2]],
 [[1,2], [1,2], [1,2]],
 [[1,2], [1,2], [1,2]]]

Ответы [ 3 ]

1 голос
/ 19 марта 2020

вы можете использовать numpy .full :

numpy.full((3, 3, 2), (1, 2))

вывод:

array([[[1, 2],
        [1, 2],
        [1, 2]],

       [[1, 2],
        [1, 2],
        [1, 2]],

       [[1, 2],
        [1, 2],
        [1, 2]]])
0 голосов
/ 19 марта 2020

numpy.zeros((3,3,2))

Полагаю, это сработало бы (но его списки не коррелируют ...)

0 голосов
/ 19 марта 2020

для <1> вы можете сгенерировать вот так

[[(1,2)] * 3]*3
# get [[(1, 2), (1, 2), (1, 2)], [(1, 2), (1, 2), (1, 2)], [(1, 2), (1, 2), (1, 2)]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...