NumPy - 数学函数
NumPy 数学函数
NumPy 提供了丰富的数学函数,这些函数对于对数组执行数值运算至关重要。这些函数包括基本算术、三角函数、指数、对数和统计运算等等。
在本教程中,我们将探索 NumPy 中最常用的数学函数,并通过示例帮助您理解它们的应用。
基本算术运算
在 NumPy 中,基本算术运算包括对数组进行加法、减法、乘法和除法。这些运算是逐元素的,这意味着它们会应用于数组中每个对应的元素。
例如,将两个数组相加会生成一个新数组,其中每个元素都是输入数组中对应元素的和。
NumPy 还支持标量运算,允许你直接将数字应用于数组的每个元素。
示例:加法、减法、乘法和除法
在下面的示例中,我们对两个 NumPy 数组执行加法、减法、乘法和除法等基本算术运算 -
import numpy as np # 定义两个数组 a = np.array([10, 20, 30]) b = np.array([5, 10, 15]) # 执行基本算术运算 加法 = a + b 减法 = a - b 乘法 = a * b 除法 = a / b print("加法:", 加法) print("减法:", 减法) print("乘法:", 乘法) print("除法:", 除法)
我们得到如下所示的输出 -
加法:[15 30 45] 减法:[ 5 10 15] 乘法:[ 50 200 450] 除法:[2. 2. 2.]
三角函数
NumPy 还提供了几个对数组执行三角运算的函数。这些函数包括正弦、余弦和正切等基本三角函数,它们对数组进行逐元素运算。
示例:正弦、余弦和正切
让我们探索如何在 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(角度) print("正弦值:", sine_values) print("余弦值:", cosine_values) print("正切值:", tangent_values)
以下是得到的输出 -
正弦值:[0.00000000e+00 7.07106781e-01 1.00000000e+00 1.22464680e-16] 余弦值:[ 1.00000000e+00 7.07106781e-01 6.12323400e-17 -1.00000000e+00] 正切值:[ 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)
这将产生以下结果 -
指数值:[ 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)
以下是上述代码的输出 -
自然对数值:[0.0.69314718 2.30258509] 以 10 为底的对数值:[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)
得到的输出如下所示−
平均值:3.0 中位数: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)
执行上述代码后,我们得到以下输出 -
标准差:1.4142135623730951 方差: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)
结果如下 −
点积: 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]]