一尘不染

如何有效地计算2D numpy数组的所有列的总和

python

假设我有以下由四行三列组成的2D numpy数组:

>>> a = numpy.arange(12).reshape(4,3)
>>> print(a)
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]

生成包含所有列之和的一维数组的有效方法是什么(如[18, 22, 26])?无需遍历所有列就能做到这一点吗?


阅读 149

收藏
2021-01-20

共1个答案

一尘不染

请查看的文档numpy.sum,特别注意该axis参数。汇总列:

>>> import numpy as np
>>> a = np.arange(12).reshape(4,3)
>>> a.sum(axis=0)
array([18, 22, 26])

或者,总结行:

>>> a.sum(axis=1)
array([ 3, 12, 21, 30])

其他聚合函数一样numpy.meannumpy.cumsum并且numpy.std,例如,也采取了axis参数。

暂定NumPy的教程

许多一元运算(例如计算数组中所有元素的总和)都作为ndarray该类的方法实现。默认情况下,这些操作适用于数组,就好像它是数字列表一样,而不管其形状如何。但是,通过指定axis
参数,您可以沿数组的指定轴应用操作:

2021-01-20