NumPy - 数学函数
NumPy 数学函数
NumPy 提供了一系列数学函数,这些函数对于在数组上执行数值运算至关重要。这些函数包括基本的算术运算、三角函数、指数函数、对数函数和统计运算等。
在本教程中,我们将探讨 NumPy 中最常用的数学函数,并通过示例帮助您理解它们的用法。
基本算术运算
在 NumPy 中,基本算术运算包括数组的加法、减法、乘法和除法。这些运算是逐元素的,即对数组中每个对应的元素分别应用运算。
例如,将两个数组相加会生成一个新数组,其中每个元素是输入数组对应元素之和。
NumPy 还支持标量运算,允许您直接将一个数字应用到数组的每个元素。
示例:加法、减法、乘法和除法
在以下示例中,我们对两个 NumPy 数组执行基本的算术运算,如加法、减法、乘法和除法 −
import numpy as np
# 定义两个数组
a = np.array([10, 20, 30])
b = np.array([5, 10, 15])
# 执行基本算术运算
addition = a + b
subtraction = a - b
multiplication = a * b
division = a / b
print("Addition:", addition)
print("Subtraction:", subtraction)
print("Multiplication:", multiplication)
print("Division:", division)
输出结果如下所示 −
Addition: [15 30 45] Subtraction: [ 5 10 15] Multiplication: [ 50 200 450] Division: [2. 2. 2.]
三角函数
NumPy 还提供了几个函数来对数组执行三角运算。这些包括基本的三角函数,如 sine、正弦、cosine、余弦和 tangent、正切,它们对数组进行逐元素运算。
示例:正弦、余弦和正切
让我们探讨如何在 NumPy 中计算数组的正弦、余弦和正切 −
import numpy as np
# 定义一个以弧度为单位的角数组
angles = np.array([0, np.pi/4, np.pi/2, np.pi])
# 计算正弦、余弦和正切
sine_values = np.sin(angles)
cosine_values = np.cos(angles)
tangent_values = np.tan(angles)
print("Sine values:", sine_values)
print("Cosine values:", cosine_values)
print("Tangent values:", tangent_values)
得到以下输出 −
Sine values: [0.00000000e+00 7.07106781e-01 1.00000000e+00 1.22464680e-16] Cosine values: [ 1.00000000e+00 7.07106781e-01 6.12323400e-17 -1.00000000e+00] Tangent values: [ 0.00000000e+00 1.00000000e+00 1.63312394e+16 -1.22464680e-16]
注意,pi/2 的正切是无穷大,因为 pi/2 的余弦为零,除以零是未定义的。
指数和对数函数
NumPy 还提供了计算指数值和对数值的函数,这些函数在各种科学和工程计算中都有应用。这些函数允许您计算数组的幂、次方和对数。
指数运算
numpy.exp() 函数计算输入数组中所有元素的指数。以下是一个示例 −
import numpy as np
# 创建一个数组
arr = np.array([1, 2, 3])
# 计算数组的指数
exp_array = np.exp(arr)
print("指数值:", exp_array)
这将产生以下结果 −
Exponential values: [ 2.71828183 7.3890561 20.08553692]
对数
NumPy 提供了 numpy.log() 函数用于计算自然对数(底数 e),以及 numpy.log10() 函数用于计算以 10 为底的对数。以下是一个示例 −
import numpy as np
# 创建一个数组
arr = np.array([1, 2, 10])
# 计算自然对数和以 10 为底的对数
log_array = np.log(arr)
log10_array = np.log10(arr)
print("自然对数值:", log_array)
print("以 10 为底的对数值:", log10_array)
以上代码的输出如下 −
Natural logarithm values: [0. 0.69314718 2.30258509] Base-10 logarithm values: [0. 0.30103 1. ]
NumPy 中的统计函数
NumPy 还提供了多种统计函数,包括计算均值、中位数、方差、标准差等。这些函数在分析数据和对数组进行统计分析时非常有用。
均值和中位数
numpy.mean() 函数计算算术均值,numpy.median() 函数计算数组的中位数,如以下示例所示 −
import numpy as np
# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])
# 计算数组的均值和中位数
mean_value = np.mean(arr)
median_value = np.median(arr)
print("均值:", mean_value)
print("中位数:", median_value)
得到的输出如下所示 −
Mean value: 3.0 Median value: 3.0
标准差和方差
numpy.std() 函数计算标准差,numpy.var() 函数计算数组的方差 −
import numpy as np
# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])
# 计算标准差和方差
std_dev = np.std(arr)
variance = np.var(arr)
print("标准差:", std_dev)
print("方差:", variance)
执行以上代码后,我们得到以下输出 −
Standard Deviation: 1.4142135623730951 Variance: 2.0
线性代数函数
NumPy 还提供了一组线性代数函数,例如矩阵乘法、点积和矩阵行列式,这些函数对于向量和矩阵的操作非常重要。
点积
numpy.dot() 函数用于计算两个数组的点积。它常用于机器学习、物理学和工程领域 −
import numpy as np
# 创建两个数组
arr1 = np.array([1, 2])
arr2 = np.array([3, 4])
# 计算点积
dot_product = np.dot(arr1, arr2)
print("Dot product:", dot_product)
输出结果如下 −
Dot product: 11
矩阵乘法
NumPy 中的矩阵乘法使用 @ 运算符或 numpy.matmul() 函数执行。它计算两个数组的点积,其中第一个矩阵的列数必须等于第二个矩阵的行数。
结果是一个新矩阵,其中每个元素是对应行和列元素的乘积之和。矩阵乘法常用于线性代数和机器学习任务。
示例
在本示例中,矩阵 A 乘以矩阵 B 得到矩阵 C,其中每个元素通过 A 的行和 B 的列的点积计算 −
import numpy as np # 定义两个矩阵 A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) # 执行矩阵乘法 C = np.matmul(A, B) # 打印结果 print(C)
输出结果如下 −
[[19 22] [43 50]]