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