添加矩阵python

时间:2018-11-18 12:34:58

标签: python arrays matrix

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 :(得分:1)

考虑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错误。

答案 1 :(得分:0)

您可以更轻松地完成操作,但是要对当前代码进行更改,如下所示:

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