数组中的操作

0 投票
4 回答
688 浏览
提问于 2025-04-15 16:21

我有个问题,我在处理一个包含多个列表的数组时,想要进行一些数学运算,比如计算每个列表的总和,然后得到一个新的列表,这个新列表里就是每个列表的总和。

谢谢任何回复。

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

撰写回答