NumPy - 求和



什么是求和?

在数学中,求和是将两个或多个数字加在一起的结果。例如,2 和 3 的和是 5。

它通常用加号 (+) 表示。求和也可以包括对数字序列进行求和,通常使用希腊字母 sigma (Σ) 来表示该运算。

NumPy 的 sum() 函数

NumPy 中的 sum() 函数计算沿指定轴的数组元素的和,提供灵活地在行、列或整个数组上进行求和。

以下是 NumPy 中 sum() 函数的基本语法:

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

其中:

  • a: 包含要相加元素的输入数组。
  • axis: 要沿其求和的轴。如果为 None,则对数组的所有元素求和。对于多维数组,您可以指定一个轴(0 代表行,1 代表列,等等)。
  • dtype: 用于求和的数据类型。如果未指定,则默认为数组的数据类型。
  • out: 将结果存储到的位置。如果提供,则其形状和类型必须与输入数组相同。
  • keepdims: 如果为 True,则将约简的轴保留在结果中,作为大小为一的维度。这对于广播很有用。

求一维数组所有元素的和

如果您有一个一维数组,可以使用 numpy.sum() 函数计算其所有元素的和。以下是一个例子:

import numpy as np

# Define a 1D array
arr = np.array([1, 2, 3, 4, 5])

# Calculate the sum of all elements
total_sum = np.sum(arr)

print("Total sum of the array:", total_sum)

以下是获得的输出:

Total sum of the array: 15

在二维数组中沿特定轴求和

在二维数组中,您可以沿特定轴计算和。例如,沿行或列求和:

import numpy as np

# Define a 2D array
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Sum along rows (axis=1)
sum_rows = np.sum(arr_2d, axis=1)

# Sum along columns (axis=0)
sum_columns = np.sum(arr_2d, axis=0)

print("Sum along rows:", sum_rows)
print("Sum along columns:", sum_columns)

以下是获得的输出:

Sum along rows: [ 6 15 24]
Sum along columns: [12 15 18]

使用指定的数据类型求和

您还可以指定要计算和的数据类型。这在处理大数字或需要特定精度(例如 float64)的结果时尤其有用。这是一个例子:

import numpy as np

# Define an array of integers
arr_int = np.array([10, 20, 30])

# Calculate the sum with a specified data type (float64)
sum_float = np.sum(arr_int, dtype=np.float64)

print("Sum with dtype float64:", sum_float)

以下是获得的输出:

Sum with dtype float64: 60.0

使用“keepdims”参数求和

keepdims 参数有助于在求和运算后保留原始数组的维数。如果设置为 True,则结果将与输入数组具有相同的维数,但求和轴的大小将减小为一。

import numpy as np

# Define a 2D array 
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Sum along columns while keeping dimensions
sum_keepdims = np.sum(arr_2d, axis=0, keepdims=True)

print("Sum with keepdims=True:", sum_keepdims)

以下是获得的输出:

Sum with keepdims=True: [[12 15 18]]

NumPy 求和的应用

numpy.sum() 函数在科学计算、数据分析和机器学习中具有广泛的应用。一些常见的用例包括:

  • 对矩阵中的行或列求和:在数据科学中,您经常需要沿特定轴计算和,以汇总表或矩阵中的数据。
  • 计算数组中的总值:对数组中的元素求和可以帮助进行财务分析、统计和科学计算,例如计算测量的总和或数量。
  • 数据聚合:在分析数据时,对值求和可以是聚合操作的一部分,例如查找总销售额或计算某些数据点的累积和。
  • 特征缩放:在机器学习中,特征的总和通常用于数据标准化或缩放,以调整特征的范围。

优化求和计算

NumPy 针对快速的数组运算进行了优化,numpy.sum() 函数效率很高。但是,有一些方法可以进一步优化您的求和计算:

  • 使用 out 参数:如果您想将和的结果存储在预先存在的数组中,可以使用 out 参数,这避免了创建新数组并有助于节省内存。
  • 明智地使用 axis仅在必要时指定轴。默认情况下,对整个数组求和是最快的操作,但是根据数据,沿特定轴求和可能会慢一些。
广告