13 NumPy数组运算之数组的运算
在这一章节中,我们将探讨 NumPy 中的数组运算。数组运算是 NumPy 的核心特性之一,它允许我们高效地对数组进行各种数学计算。掌握这一特性对于数据分析、科学计算以及机器学习等领域都至关重要。我们将介绍数组的基本运算、广播机制以及常见的数组运算示例。
数组的基本运算
借助 NumPy,我们可以对数组执行各种基本的数学运算,包括加法、减法、乘法和除法。让我们来看看这些操作的基本用法。
1. 数组的加法
我们可以直接使用 +
运算符对两个数组进行加法运算。以下是一个示例:
import numpy as np
# 创建两个数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 数组的加法
result_add = a + b
print("数组加法的结果:", result_add)
输出为:
数组加法的结果: [5 7 9]
2. 数组的减法
类似地,我们可以使用 -
运算符执行减法运算:
# 数组的减法
result_subtract = a - b
print("数组减法的结果:", result_subtract)
输出为:
数组减法的结果: [-3 -3 -3]
3. 数组的乘法和除法
使用 *
运算符进行元素级别的乘法,使用 /
运算符进行除法运算:
# 数组的乘法
result_multiply = a * b
print("数组乘法的结果:", result_multiply)
# 数组的除法
result_divide = a / b
print("数组除法的结果:", result_divide)
输出:
数组乘法的结果: [ 4 10 18]
数组除法的结果: [0.25 0.4 0.5 ]
广播机制
在进行数组运算时,NumPy 还引入了广播
机制。广播的目的是使不同形状的数组能够进行运算。NumPy 会自动扩展小数组的维度,使其匹配大数组的维度。
广播示例
# 创建一个一维数组和一个二维数组
a = np.array([1, 2, 3]) # 形状为(3,)
b = np.array([[10], [20], [30]]) # 形状为(3, 1)
# 数组的广播运算
result_broadcast = a + b
print("广播运算的结果:\n", result_broadcast)
输出:
广播运算的结果:
[[11 12 13]
[21 22 23]
[31 32 33]]
可以看到,数组 b
被扩展成了与 a
相同的形状,以便进行加法运算。
其他常见运算
在 NumPy 中,数组还支持平方、开方、取余等其他数学运算。我们通过以下示例来加深理解:
# 数组的平方
result_square = a ** 2
print("数组的平方:", result_square)
# 数组的开方
result_sqrt = np.sqrt(a)
print("数组的开方:", result_sqrt)
# 取余运算
result_mod = a % 2
print("数组取余运算:", result_mod)
输出:
数组的平方: [1 4 9]
数组的开方: [1. 1.41421356 1.73205081]
数组取余运算: [1 0 1]
结论
在本章中,我们介绍了 NumPy 数组的基本运算,包括加法、减法、乘法和除法。我们也学习了广播机制,它使得不同形状的数组能够一起进行运算。掌握这些基本运算和机制对于后续更复杂的数据分析和统计运算至关重要。
在下一章中,我们将继续深入 NumPy 数组的统计函数,探索如何使用这些函数进行数据分析和处理。
注意:不同形状的数组在运算时可能会抛出错误,使用广播机制时要确保形状能够广播。