Добавить матрицы питона - PullRequest
       8

Добавить матрицы питона

0 голосов
/ 18 ноября 2018
A = [[1,1,1,1],[1,1,1,1]]
B = [[1,1,1,1], [1,1,1,1]]
sum = []

m=len(A[0])
n=len(A)

for i in range(n):
    for j in range(m):
        sum.append(A[i][j]+B[i][j])

print(sum)

У меня есть результат [2,2,2,2,2,2,2,2], но мне нужно [[2,2,2,2],[2,2,2,2]].

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Рассмотрим numpy.

>>> import numpy as np
>>> np.add(A, B)
array([[2, 2, 2, 2],
       [2, 2, 2, 2]])

Если вы не хотите использовать numpy, учтите следующее:

>>> [[sum(pair) for pair in zip(sub1, sub2)] for sub1, sub2 in zip(A, B)]
[[2, 2, 2, 2], [2, 2, 2, 2]]

Также не используйте sum = [], вы переназначите встроенную функцию sum, что приведет к TypeError: 'list' object is not callable ошибкам.

0 голосов
/ 18 ноября 2018

Вы можете сделать это проще, но с вашим текущим кодом, измените его следующим образом:

for i in range(n):
    v=[]
    for j in range(m):
        v.append(A[i][j]+B[i][j])
    sum.append(v)
...