介绍
NumPy 是一个广泛使用的 Python 库,专为科学计算而设计。它提供了高性能的数组操作和数学函数,非常适合用于数值数据分析。在本实验中,你将学习 NumPy 的切片(slicing)和索引(indexing)功能。
这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 96%。获得了学习者 100% 的好评率。
NumPy 是一个广泛使用的 Python 库,专为科学计算而设计。它提供了高性能的数组操作和数学函数,非常适合用于数值数据分析。在本实验中,你将学习 NumPy 的切片(slicing)和索引(indexing)功能。
切片(Slicing)是通过指定索引范围来提取数组子集的过程。NumPy 数组可以使用冒号 : 操作符进行切片。
在终端中输入以下命令以打开 Python shell。
python3
NumPy 已经安装,你可以在 Python 代码中导入它:
import numpy as np
## 创建一个一维数组
a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
## 从索引 2 到索引 5 切片数组
print(a[2:5])
输出:
[2 3 4]
你也可以对多维数组进行切片。
## 创建一个二维数组
b = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
## 切片前两行和前两列
print(b[:2, :2])
输出:
[[0 1]
[3 4]]
布尔索引(Boolean Indexing)是一种强大的功能,允许我们根据条件过滤数组。你可以通过对现有数组应用逻辑运算符来创建布尔数组。
c = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
mask = c > 5
print(mask)
输出:
[False False False False False False True True True True]
print(c[mask])
输出:
[6 7 8 9]
花式索引(Fancy Indexing)是一种使用索引数组来索引数组的方式。你可以使用这种技术提取数组中的特定元素或子集。
## 创建一个一维数组
d = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
## 创建一个索引数组
indices = np.array([1, 3, 5])
## 使用花式索引提取指定索引处的元素
print(d[indices])
输出:
[1 3 5]
## 创建一个一维数组
e = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
## 创建一个索引数组
indices = np.array([1, 3, 5])
## 将值 10 赋给指定索引处的元素
e[indices] = 10
print(e)
输出:
[ 0 10 2 10 4 10 6 7 8 9]
恭喜!你已经完成了 NumPy 切片和索引实验。
在本实验中,你学习了 NumPy 数组切片和索引的基础知识: