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

发布于 2021-01-29 14:55:28

假设我有以下由四行三列组成的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])?无需遍历所有列就能做到这一点吗?

关注者
0
被浏览
103
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    请查看的文档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
    参数,您可以沿数组的指定轴应用操作:



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看