Python NumPy 中级教程:数组操作
NumPy 是 Python 中用于科学计算的核心库之一,提供了强大的数组操作功能。本篇博客将深入介绍 NumPy 中的数组操作,包括数组的切片、索引、形状操作、合并与分割等,通过实例演示如何应用这些功能。
1. 安装 NumPy
确保你已经安装了 NumPy。如果尚未安装,可以使用以下命令:
代码语言:javascript复制pip install numpy
###2. 导入 NumPy 库 在使用 NumPy 进行数组操作之前,导入 NumPy 库:
代码语言:javascript复制import numpy as np
3. 创建示例数组
在学习数组操作之前,首先创建一些示例数组:
代码语言:javascript复制# 创建一维数组
arr1 = np.array([1, 2, 3, 4, 5])
# 创建二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 创建零数组
zeros_arr = np.zeros((3, 3))
# 创建全一数组
ones_arr = np.ones((2, 4))
# 创建等差数列
arange_arr = np.arange(0, 10, 2)
# 创建均匀分布的数组
linspace_arr = np.linspace(0, 1, 5)
4. 数组的基本操作
4.1 数组索引与切片
代码语言:javascript复制# 数组索引
print(arr1[2]) # 输出:3
# 数组切片
print(arr1[1:4]) # 输出:[2, 3, 4]
4.2 数组形状操作
代码语言:javascript复制# 获取数组形状
print(arr2.shape) # 输出:(3, 3)
# 改变数组形状
reshaped_arr = arr2.reshape(9)
print(reshaped_arr)
5. 数组合并与分割
5.1 数组合并
代码语言:javascript复制# 水平合并
hstack_arr = np.hstack((arr2, arr2))
# 垂直合并
vstack_arr = np.vstack((arr2, arr2))
5.2 数组分割
代码语言:javascript复制# 水平分割
hsplit_arr = np.hsplit(arr2, 3)
# 垂直分割
vsplit_arr = np.vsplit(arr2, 3)
6. 数组运算
6.1 元素级运算
代码语言:javascript复制# 加法
add_arr = arr1 2
# 乘法
mul_arr = arr1 * 3
# 平方
squared_arr = arr1 ** 2
6.2 矩阵运算
代码语言:javascript复制# 矩阵乘法
mat_mul_arr = np.dot(arr2, arr2)
7. 数组统计与数学函数
7.1 统计函数
代码语言:javascript复制# 平均值
mean_value = np.mean(arr1)
# 最大值
max_value = np.max(arr1)
# 标准差
std_deviation = np.std(arr1)
7.2 数学函数
代码语言:javascript复制# 指数函数
exp_arr = np.exp(arr1)
# 对数函数
log_arr = np.log(arr1)
# 平方根
sqrt_arr = np.sqrt(arr1)
8. 布尔运算与条件筛选
代码语言:javascript复制# 布尔运算
bool_arr = arr1 > 3
# 条件筛选
filtered_arr = arr1[arr1 > 3]
9. 广播
代码语言:javascript复制# 广播
broadcast_arr = arr1 np.array([10, 20, 30, 40, 50])
10. 随机数生成
代码语言:javascript复制# 随机整数数组
rand_int_arr = np.random.randint(1, 100, size=(3, 3))
# 随机正态分布数组
rand_norm_arr = np.random.randn(2, 4)
11. 总结
通过学习以上 NumPy 中的数组操作,你可以更灵活地处理和分析数组数据。这些功能包括数组的切片、索引、形状操作、合并与分割、数组运算、统计与数学函数等。希望这篇博客能够帮助你更好地理解和运用 NumPy 中的数组操作。