第 2 章 索引与切片#
这一章要解决什么#
数组造好了,接下来就是从里面取数据。
但 NumPy 的取数方式有四种,每种返回的东西都不一样:
| 写法 | 名字 | 返回什么 |
|---|---|---|
arr[0] | 基础索引 | 一个元素 |
arr[1:3] | 切片 | 一段视图(可能改到原数组) |
arr[[0, 2]] | Fancy Indexing | 一个副本 |
arr[arr > 10] | 布尔掩码 | 一个副本 |
初学者最大的困惑是:「我改了取出来的结果,为什么原数组也变了?」
答案就藏在「视图」和「副本」的差别里。这一章会把这个坑彻底讲透,让你以后写代码心里有底。
章节导航#
- 第 2.1 节 核心知识点——基础索引、切片三件套(起始/结束/步长)、Fancy Indexing、布尔掩码、
np.where与np.argwhere找位置,以及视图与副本的真相。 - 第 2.2 节 编程练习——5 道动手题,从「取第几个」一路到「多个条件同时筛选」。
- 第 2.3 节 常见问题——10 个高频疑问,比如「为什么
arr[0]拿到的不是数字」「切片到底包不包含末尾」。
预备知识#
- 已经学过第 1 章,知道怎么造数组、怎么看
shape; - 知道 Python 列表的索引和切片;
- 知道布尔表达式
a > 3会得到一串 True/False。
本章的一句话主线 NumPy 的索引分成两类:切片给你「窗口」(视图), fancy index 和布尔掩码给你「复印件」(副本)。 想清楚自己要的是窗口还是复印件,就不会出错了。
本章内容
第2.1节 核心知识点(40分钟)
本文是 NumPy 数组计算实战课程第 2 章第 1 节,系统讲解 NumPy 中 5 个取数核心操作:基础索引与负数索引、切片的起始结束步长、Fancy Indexing 用整数数组一次性取多个元素、布尔掩码筛选与 …
第2.2节 编程练习(45分钟)
本文是 NumPy 数组计算实战课程第 2 章第 2 节,提供 5 道编程练习:用索引和切片提取指定位置的元素、用整数数组一次性选择多个元素、用布尔掩码筛选满足条件的元素、提取满足多个条件的数组元素,以及亲手验证「改切片会动原数组、改高级索 …
第2.3节 常见问题(30分钟)
本文是 NumPy 数组计算实战课程第 2 章第 3 节,汇总了初学者在 NumPy 取数时最常遇到的 10 个问题并逐一解答,涵盖索引为什么从 0 开始、如何访问二维数组的行列与单个元素、切片的起始结束步长各起什么作用、Fancy …