如何有效地计算2D numpy数组的所有列的总和
假设我有以下由四行三列组成的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]
)?无需遍历所有列就能做到这一点吗?
-
请查看的文档
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.mean
,numpy.cumsum
并且numpy.std
,例如,也采取了axis
参数。许多一元运算(例如计算数组中所有元素的总和)都作为
ndarray
该类的方法实现。默认情况下,这些操作适用于数组,就好像它是数字列表一样,而不管其形状如何。但是,通过指定axis
参数,您可以沿数组的指定轴应用操作: