优草派 > Python

numpy 求和

杨志强         优草派

numpy 是 Python 中用于科学计算的一个核心库,它提供了高效的数组操作和数学函数。其中,求和是 numpy 中最常用的操作之一,它可以对数组中的所有元素进行累加,得到一个标量值。本文将从多个角度分析 numpy 的求和功能。

1. numpy.sum() 函数

numpy 求和

numpy.sum() 函数可以对数组中的元素进行求和,并返回一个标量值。它的语法如下:

numpy.sum(a, axis=None, dtype=None, keepdims=False)

其中,a 表示要求和的数组;axis 表示要沿着哪个轴求和,默认为 None,表示对所有元素求和;dtype 表示返回值的数据类型,默认为 None,表示自动推断;keepdims 表示是否保留求和后的维度信息,默认为 False,表示不保留。

下面是一个简单的例子:

import numpy as np

a = np.array([[1, 2], [3, 4]])

print(np.sum(a)) # 10

在这个例子中,我们创建了一个二维数组 a,并对其所有元素进行了求和。

2. 沿轴求和

除了对所有元素求和之外,numpy.sum() 函数还可以沿着指定轴对数组进行求和。例如,对于一个二维数组,我们可以沿着行轴或列轴进行求和。下面是一个例子:

import numpy as np

a = np.array([[1, 2], [3, 4]])

print(np.sum(a, axis=0)) # [4 6]

print(np.sum(a, axis=1)) # [3 7]

在这个例子中,我们分别沿着行轴和列轴对数组 a 进行了求和。沿着行轴求和得到了一个一维数组 [4, 6],其中第一个元素是 1+3=4,第二个元素是 2+4=6;沿着列轴求和得到了一个一维数组 [3, 7],其中第一个元素是 1+2=3,第二个元素是 3+4=7。

3. 数据类型和精度

在使用 numpy.sum() 函数时,我们可以指定返回值的数据类型 dtype。如果不指定,numpy 会自动推断数据类型。下面是一个例子:

import numpy as np

a = np.array([1, 2, 3], dtype=np.float32)

print(np.sum(a)) # 6.0

在这个例子中,我们创建了一个一维数组 a,其中元素的数据类型为 np.float32。当我们对其进行求和时,numpy 会自动将返回值的数据类型设为 np.float32,因为这是元素数据类型的最小精度。

4. 保留维度信息

在默认情况下,numpy.sum() 函数会消除求和后的维度信息。例如,对于一个二维数组,如果我们沿着行轴求和,结果将变成一个一维数组。如果我们想要保留维度信息,可以将 keepdims 参数设为 True。下面是一个例子:

import numpy as np

a = np.array([[1, 2], [3, 4]])

print(np.sum(a, axis=0, keepdims=True)) # [[4 6]]

print(np.sum(a, axis=1, keepdims=True)) # [[3], [7]]

在这个例子中,我们分别沿着行轴和列轴对数组 a 进行了求和,并将 keepdims 参数设为 True。沿着行轴求和后得到的结果是一个二维数组 [[4, 6]],其中第一个元素是 1+3=4,第二个元素是 2+4=6;沿着列轴求和后得到的结果是一个二维数组 [[3], [7]],其中第一个元素是 1+2=3,第二个元素是 3+4=7。

5. 性能优化

在进行大规模数据处理时,性能优化是非常重要的。在 numpy 中,可以通过使用 ufunc 函数和逐元素操作来优化求和操作的性能。例如,对于一个一维数组,我们可以使用 np.add.reduce() 函数来求和,它的性能比 numpy.sum() 函数更好。下面是一个例子:

import numpy as np

a = np.array([1, 2, 3])

print(np.add.reduce(a)) # 6

在这个例子中,我们创建了一个一维数组 a,并使用 np.add.reduce() 函数对其进行了求和,得到了标量值 6。

  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024