Соответствие размеров матрицы для матрицы математики - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь выполнить матричную математику, используя numpy. У меня есть то, что я ожидаю, чтобы быть матрицей 2x2x401, которую я пытаюсь добавить к матрице идентичности, используя np.add(). В коде я попытался:

result = []
self.data = x #where x is a 2x2x401 np array
z_sqrt = np.identity(2)
for x in range(401):
    result.append(np.add(z_sqrt,self.data[:][:][x]))
    #if the above gives me errors because of how I'm assigning it, I'm not there yet

Я получаю ошибку:

ValueError: operands could not be broadcast together with shapes (2,2) (2,401)

1 Ответ

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

Пожалуйста, попробуйте следующее, что может помочь,

result = x + np.atleast_3d(np.identity(2))

, где x - ваш (2,2,401) массив. Вышеприведенное должно работать напрямую на весь массив без использования for l oop, поэтому вы получите result формы (2,2401) в одну строку. В качестве альтернативы вы также можете попробовать ниже,

result = x + (np.identity(2)[:,:,np.newaxis])
...