Numpy中的按轴求和
在本文中,我们将介绍Numpy中按轴求和的概念、用法以及一些具体的实例。
阅读更多:Numpy 教程
按轴求和的概念
Numpy是一款Python科学计算的基础库。它是Python中数值计算的基石,并为大量Python库提供了数值计算基础。Numpy可以用于一维数组、二维数组甚至多维数组的计算。其中一个非常常见的数组操作就是求和。但是对于多维数组而言,求和不同于一维数组,因为多维数组可以按多个轴,也就是维度进行求和。在Numpy中,我们可以通过sum方法实现按轴求和的功能。其函数签名如下:
numpy.sum(a, axis=None, dtype=None, out=None, keepdims=False, initial=0, where=True)
其中,a为数组;axis为沿着哪个轴进行求和;dtype是返回数组的类型;out是返回数组的引用;keepdims指定是否保留原数组的维度;initial是累加的初始值;where是布尔型数组,指定哪些元素参与计算。
按轴求和的用法
下面是一些按轴求和的使用示例:
对于一维数组
import numpy as np
a = np.array([1, 2, 3, 4])
# 不指定axis等同于axis=None
sum_a = np.sum(a)
print(sum_a) # 输出:10
# 沿着第一维求和,等同于上方的结果
sum_a_axis0 = np.sum(a, axis=0)
print(sum_a_axis0) # 输出:10
对于二维数组
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 不指定axis等同于axis=None
sum_b = np.sum(b)
print(sum_b) # 输出: 45
# 沿着第一维求和
sum_b_axis0 = np.sum(b, axis=0)
print(sum_b_axis0) # 输出:[12, 15, 18]
# 沿着第二维求和
sum_b_axis1 = np.sum(b, axis=1)
print(sum_b_axis1) # 输出:[6, 15, 24]
可以看到,按第一维和第二维求和所得的结果是不同的。这是因为按axis=0对每列求和,得到了列的和;而按axis=1对每行进行求和,得到的是行的和。
对于三维数组
c = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
# 不指定axis等同于axis=None
sum_c = np.sum(c)
print(sum_c) # 输出:36
# 沿着第一维求和
sum_c_axis0 = np.sum(c, axis=0)
print(sum_c_axis0)
# 输出:
# [[ 6 8]
# [10 12]]
# 沿着第二维求和
sum_c_axis1 = np.sum(c, axis=1)
print(sum_c_axis1)
# 输出:
# [[ 4 6]
# [12 14]]
# 沿着第三维求和
sum_c_axis2 = np.sum(c, axis=2)
print(sum_c_axis2)
# 输出:
# [[ 3 7]
# [11 15]]
按axis=0,按照行的维度一次求和,等同于加上每个二维数组的元素的值;按axis=1,按照列的维度一次求和;按axis=2,按照深度的维度一次求和。
总结
本文介绍了Numpy中按轴求和的概念、用法以及实例。对于多维数组而言,按轴求和是非常常见的操作,通过Numpy的sum方法可以很方便地实现。在实际应用中,我们需要根据具体的需求,选择合适的轴进行求和,以得到正确的结果。
极客教程