我有n个2d数组的列表QS
。现在我想总结列表中的所有数组,以便最终得到另一个2d数组。到目前为止,我手动执行此操作,因为我的列表元素数量很少,例如:
n=6
QM=QS[0]+QS[1]+QS[2]+QS[3]+QS[4]+QS[5]
但现在我需要考虑列表中的更多元素,我正在寻找一种更加pythonic的方式来做到这一点。我尝试了以下内容:
QQ=map(sum, zip(QS))
但它给出了原始列表中数组元素总和的列表,而不是数组本身的总和。 必须有一个简单的方法来做到这一点,我还没有想出来。有什么建议吗?
答案 0 :(得分:1)
这相当于将+
列在其中:
QM = []
map(lambda l: QM.extend(l), QS)
没有地图:
for l in QS:
QM.extend(l)
或简单地说:
for l in QS:
QM += l
答案 1 :(得分:1)
我认为你可以使用np.sum
,IIUC:
>>> import numpy as np
>>> QS = [np.random.randint(0, 10, (3,3)) for i in range(6)]
>>> QM = QS[0]+QS[1]+QS[2]+QS[3]+QS[4]+QS[5]
>>> QM
array([[36, 32, 32],
[34, 28, 30],
[28, 28, 32]])
>>> QM2 = np.sum(QS,axis=0)
>>> QM2
array([[36, 32, 32],
[34, 28, 30],
[28, 28, 32]])
>>> np.allclose(QM, QM2)
True
答案 2 :(得分:0)
答案 3 :(得分:0)
如果您想将2D列表转换为1D,请尝试以下操作:
>>> a = [[1,2], [3,4], [5,6]]
>>> sum(a, [])
[1, 2, 3, 4, 5, 6]
>>>