Как инициализировать определенное значение элемента массива с набором элементов? - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть код, в котором я хочу создать многомерный массив numpy, каждый элемент которого представляет собой другой массив из 3 элементов вектора строки. Вот как это выглядит:

a1=np.ndarray([4,4])
for i in range(4):
    for j in range(4):
        a1[i,j]=[2,2,2]

Теперь, когда я пытаюсь это сделать, я получаю сообщение об ошибке: ValueError: установка элемента массива с последовательностью.

Пожалуйста, скажите мне, где я ошибся. По сути, моя цель - создать numpy ndarray (а не asarray или массив) следующим образом: Это всего лишь грубый пример того, что я хочу сделать.

[[1,1,1],[2,2,2],[3,3,3]
[4,4,4],[5,5,5],[6,6,6]
[1,2,3],[4,5,6],[1,2,4]]

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

ваш окончательный массив будет иметь (4,4,3) форму. поэтому вы должны зарезервировать эту комнату:

a1=np.empty((4,4,3),dtype=int)
# or np.ndarray((4,4,3),int)
for i in range(4):
    for j in range(4):
        a1[i,j]=[i,j,i+j] # for exemple
0 голосов
/ 04 сентября 2018

Трехэлементный вектор в каждом i, j месте образует третье измерение. Таким образом, форма массива должна быть [4, 4, 3] - третье измерение содержит 3 элемента.

a1 = np.ndarray([4, 4, 3])
...
...