数组中的操作
我有个问题,我在处理一个包含多个列表的数组时,想要进行一些数学运算,比如计算每个列表的总和,然后得到一个新的列表,这个新列表里就是每个列表的总和。
谢谢任何回复。
4 个回答
2
你也可以试试用内置的sum函数来对列表进行映射。
>>> a = [11, 13, 17, 19, 23]
>>> b = [29, 31, 37, 41, 43]
>>> c = [47, 53, 59, 61, 67]
>>> d = [71, 73, 79, 83, 89]
>>> map(sum, [a, b, c, d])
<map object at 0x02A0E0D0>
>>> list(_)
[83, 181, 287, 395]
3
试试列表推导式:
>>> list_of_lists = [[1,2],[3,4]]
>>> [sum(li) for li in list_of_lists]
[3, 7]
1
我理解的是,你有一个列表的列表,也就是一个矩阵。你想要计算每一行的总和。我同意其他回答者的看法,建议你使用numpy这个库。
我们可以创建一个多维数组:
>>> import numpy
>>> a = numpy.array([[1,2,3], [4,5,6], [7,8,9]])
>>> a
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
现在我们可以使用 a.sum([维度])
,其中 维度
是你想要对数组进行求和的方式。对每一行求和时,维度是1:
>>> a.sum(1)
array([ 6, 15, 24])
你也可以对每一列进行求和:
>>> a.sum(0)
array([12, 15, 18])
还可以求出所有元素的总和:
>>> a.sum()
45