如何在最简洁的python中总结一个多维数组?

Mar*_*ayo 9 python sum multidimensional-array

最接近的是这一个总和列.

所以我会在我的问题中做类似的事情:

说我有一个Python 2D列表如下:

my_list =  [ [1,2,3,4],
             [2,4,5,6] ]
Run Code Online (Sandbox Code Playgroud)

我可以通过列表理解得到行总数:

row_totals = [ sum(x) for x in my_list ]
Run Code Online (Sandbox Code Playgroud)

在一行中,我如何总结整个2d阵列?

27
Run Code Online (Sandbox Code Playgroud)

min*_*ive 11

你可以这么简单

sum(map(sum, my_list))
Run Code Online (Sandbox Code Playgroud)

或者

sum(sum(x) for x in my_list))
Run Code Online (Sandbox Code Playgroud)

并且如果您不期望超过2个维度,请将其称为一天.请注意,由于使用的原因,第一种解决方案很可能不是最快的(如执行时)解决方案map().根据需要进行基准测试和比较.

最后,如果您发现自己使用多维数组,请考虑使用NumPy及其优秀的数组友好函数.以下是您的问题的简短摘录:

import numpy as np

my_list = np.array([[1,2,3,4], [2,4,5,6]])
np.sum(my_list)
Run Code Online (Sandbox Code Playgroud)

这适用于您的阵列可能具有的任意数量的维度.