<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>第 2 章：索引与切片（Indexing &amp; Slicing） on 跟我学机器学习</title><link>https://machinelearningwithme.com/course/numpy/chapter02/</link><description>Recent content in 第 2 章：索引与切片（Indexing &amp; Slicing） on 跟我学机器学习</description><generator>Hugo</generator><language>zh_CN</language><lastBuildDate>Sun, 25 Oct 2026 21:46:53 +0800</lastBuildDate><atom:link href="https://machinelearningwithme.com/course/numpy/chapter02/index.xml" rel="self" type="application/rss+xml"/><item><title>NumPy 索引与切片详解：基础索引、Fancy Indexing、布尔掩码与视图副本陷阱 | NumPy 数组计算实战</title><link>https://machinelearningwithme.com/course/numpy/chapter02/core-concepts/</link><pubDate>Sun, 25 Oct 2026 09:30:00 +0800</pubDate><guid>https://machinelearningwithme.com/course/numpy/chapter02/core-concepts/</guid><description>&lt;h1 id="第-21-节-核心知识点"&gt;第 2.1 节 核心知识点&lt;a class="anchor" href="#%e7%ac%ac-21-%e8%8a%82-%e6%a0%b8%e5%bf%83%e7%9f%a5%e8%af%86%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;blockquote class='book-hint note'&gt;
&lt;p&gt;&lt;strong&gt;预计学习时长：&lt;/strong&gt; 40 分钟&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;本节目标：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;会用正数、负数索引取单个元素；&lt;/li&gt;
&lt;li&gt;会用切片取一段，并且知道起点含、终点不含；&lt;/li&gt;
&lt;li&gt;会用 &lt;code&gt;arr[[...]]&lt;/code&gt; 一次性取多个不连续的位置；&lt;/li&gt;
&lt;li&gt;会用布尔掩码筛选，包括多个条件同时满足；&lt;/li&gt;
&lt;li&gt;知道切片和高级索引的区别，&lt;strong&gt;不会再不小心改到原数组&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;h2 id="先说清楚一件事四种取数方式两种结果类型"&gt;先说清楚一件事：四种取数方式，两种结果类型&lt;a class="anchor" href="#%e5%85%88%e8%af%b4%e6%b8%85%e6%a5%9a%e4%b8%80%e4%bb%b6%e4%ba%8b%e5%9b%9b%e7%a7%8d%e5%8f%96%e6%95%b0%e6%96%b9%e5%bc%8f%e4%b8%a4%e7%a7%8d%e7%bb%93%e6%9e%9c%e7%b1%bb%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;准备数据：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020;font-weight:bold"&gt;import&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;numpy&lt;/span&gt; &lt;span style="color:#007020;font-weight:bold"&gt;as&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;np&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;scores &lt;span style="color:#666"&gt;=&lt;/span&gt; np&lt;span style="color:#666"&gt;.&lt;/span&gt;array([&lt;span style="color:#40a070"&gt;80&lt;/span&gt;, &lt;span style="color:#40a070"&gt;90&lt;/span&gt;, &lt;span style="color:#40a070"&gt;75&lt;/span&gt;, &lt;span style="color:#40a070"&gt;100&lt;/span&gt;, &lt;span style="color:#40a070"&gt;60&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;matrix &lt;span style="color:#666"&gt;=&lt;/span&gt; np&lt;span style="color:#666"&gt;.&lt;/span&gt;array([
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#40a070"&gt;1&lt;/span&gt;, &lt;span style="color:#40a070"&gt;2&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#40a070"&gt;4&lt;/span&gt;, &lt;span style="color:#40a070"&gt;5&lt;/span&gt;, &lt;span style="color:#40a070"&gt;6&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#40a070"&gt;7&lt;/span&gt;, &lt;span style="color:#40a070"&gt;8&lt;/span&gt;, &lt;span style="color:#40a070"&gt;9&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;先把四种取数方式摆在一起：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;写法&lt;/th&gt;
					&lt;th&gt;返回&lt;/th&gt;
					&lt;th&gt;类型&lt;/th&gt;
					&lt;th&gt;改它会改原数组吗&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;scores[0]&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;一个数&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;np.int64&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;不会&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;scores[1:3]&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;一段&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ndarray&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;会&lt;/strong&gt;（视图）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;scores[[0, 2]]&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;一段&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ndarray&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;不会（副本）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;scores[scores &amp;gt; 75]&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;一段&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ndarray&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;不会（副本）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;「会」和「不会」这一列，就是本章要讲透的核心。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="知识点-1基础索引basic-indexing"&gt;知识点 1：基础索引（Basic Indexing）&lt;a class="anchor" href="#%e7%9f%a5%e8%af%86%e7%82%b9-1%e5%9f%ba%e7%a1%80%e7%b4%a2%e5%bc%95basic-indexing"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="取单个元素方括号里写数字"&gt;取单个元素：方括号里写数字&lt;a class="anchor" href="#%e5%8f%96%e5%8d%95%e4%b8%aa%e5%85%83%e7%b4%a0%e6%96%b9%e6%8b%ac%e5%8f%b7%e9%87%8c%e5%86%99%e6%95%b0%e5%ad%97"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020"&gt;print&lt;/span&gt;(scores[&lt;span style="color:#40a070"&gt;0&lt;/span&gt;]) &lt;span style="color:#60a0b0;font-style:italic"&gt;# 80&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020"&gt;print&lt;/span&gt;(scores[&lt;span style="color:#40a070"&gt;2&lt;/span&gt;]) &lt;span style="color:#60a0b0;font-style:italic"&gt;# 75&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;从 0 开始数&lt;/strong&gt;——和 Python 列表一模一样。&lt;/p&gt;
&lt;h3 id="负数索引从后往前数"&gt;负数索引：从后往前数&lt;a class="anchor" href="#%e8%b4%9f%e6%95%b0%e7%b4%a2%e5%bc%95%e4%bb%8e%e5%90%8e%e5%be%80%e5%89%8d%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020"&gt;print&lt;/span&gt;(scores[&lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#40a070"&gt;1&lt;/span&gt;]) &lt;span style="color:#60a0b0;font-style:italic"&gt;# 60 最后一个&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020"&gt;print&lt;/span&gt;(scores[&lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#40a070"&gt;2&lt;/span&gt;]) &lt;span style="color:#60a0b0;font-style:italic"&gt;# 100 倒数第二个&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="越界会直接报错"&gt;越界会直接报错&lt;a class="anchor" href="#%e8%b6%8a%e7%95%8c%e4%bc%9a%e7%9b%b4%e6%8e%a5%e6%8a%a5%e9%94%99"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;scores[&lt;span style="color:#40a070"&gt;5&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#60a0b0;font-style:italic"&gt;# IndexError: index 5 is out of bounds for axis 0 with size 5&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote class='book-hint important'&gt;
&lt;p&gt;&lt;strong&gt;注意 NumPy 和 Pandas 的一个区别&lt;/strong&gt;
在 Pandas 里 &lt;code&gt;df[0]&lt;/code&gt; 是取「叫 0 的那一列」；在 NumPy 里 &lt;code&gt;arr[0]&lt;/code&gt; 是取「&lt;strong&gt;第 0 行&lt;/strong&gt;的第一个元素」。
语义完全不同，别混。&lt;/p&gt;</description></item><item><title>NumPy 编程练习：5 道动手题学会索引与切片（基础索引、Fancy Indexing、布尔掩码、视图副本） | NumPy 数组计算实战</title><link>https://machinelearningwithme.com/course/numpy/chapter02/coding-exercises/</link><pubDate>Sun, 25 Oct 2026 09:30:00 +0800</pubDate><guid>https://machinelearningwithme.com/course/numpy/chapter02/coding-exercises/</guid><description>&lt;h1 id="第-22-节-编程练习"&gt;第 2.2 节 编程练习&lt;a class="anchor" href="#%e7%ac%ac-22-%e8%8a%82-%e7%bc%96%e7%a8%8b%e7%bb%83%e4%b9%a0"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;blockquote class='book-hint note'&gt;
&lt;p&gt;&lt;strong&gt;预计学习时长：&lt;/strong&gt; 45 分钟&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;练习方式：&lt;/strong&gt; 新建一个 Jupyter Notebook，把下面的数据抄进去，然后&lt;strong&gt;每题独立完成&lt;/strong&gt;。第 5 题最重要，一定要亲手跑一遍。&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 id="准备先把数据建好"&gt;准备：先把数据建好&lt;a class="anchor" href="#%e5%87%86%e5%a4%87%e5%85%88%e6%8a%8a%e6%95%b0%e6%8d%ae%e5%bb%ba%e5%a5%bd"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020;font-weight:bold"&gt;import&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;numpy&lt;/span&gt; &lt;span style="color:#007020;font-weight:bold"&gt;as&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;np&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;scores &lt;span style="color:#666"&gt;=&lt;/span&gt; np&lt;span style="color:#666"&gt;.&lt;/span&gt;array([&lt;span style="color:#40a070"&gt;80&lt;/span&gt;, &lt;span style="color:#40a070"&gt;90&lt;/span&gt;, &lt;span style="color:#40a070"&gt;75&lt;/span&gt;, &lt;span style="color:#40a070"&gt;100&lt;/span&gt;, &lt;span style="color:#40a070"&gt;60&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;matrix &lt;span style="color:#666"&gt;=&lt;/span&gt; np&lt;span style="color:#666"&gt;.&lt;/span&gt;array([
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#40a070"&gt;1&lt;/span&gt;, &lt;span style="color:#40a070"&gt;2&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#40a070"&gt;4&lt;/span&gt;, &lt;span style="color:#40a070"&gt;5&lt;/span&gt;, &lt;span style="color:#40a070"&gt;6&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#40a070"&gt;7&lt;/span&gt;, &lt;span style="color:#40a070"&gt;8&lt;/span&gt;, &lt;span style="color:#40a070"&gt;9&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="练习-1通过索引和切片提取指定位置的元素"&gt;练习 1：通过索引和切片提取指定位置的元素&lt;a class="anchor" href="#%e7%bb%83%e4%b9%a0-1%e9%80%9a%e8%bf%87%e7%b4%a2%e5%bc%95%e5%92%8c%e5%88%87%e7%89%87%e6%8f%90%e5%8f%96%e6%8c%87%e5%ae%9a%e4%bd%8d%e7%bd%ae%e7%9a%84%e5%85%83%e7%b4%a0"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;题目：&lt;/strong&gt; 完成下面 6 个任务：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;取出 &lt;code&gt;scores&lt;/code&gt; 的第 0 个元素、第 2 个元素；&lt;/li&gt;
&lt;li&gt;取出 &lt;code&gt;scores&lt;/code&gt; 的&lt;strong&gt;最后一个&lt;/strong&gt;元素（用负数索引）；&lt;/li&gt;
&lt;li&gt;取出 &lt;code&gt;scores&lt;/code&gt; 位置 1 到 3 的元素（不含 3）；&lt;/li&gt;
&lt;li&gt;取出 &lt;code&gt;scores&lt;/code&gt; 的前 3 个元素；&lt;/li&gt;
&lt;li&gt;取出 &lt;code&gt;scores&lt;/code&gt; 里&lt;strong&gt;每隔一个&lt;/strong&gt;的元素（即下标 0、2、4）；&lt;/li&gt;
&lt;li&gt;取出 &lt;code&gt;matrix&lt;/code&gt; 的&lt;strong&gt;第 1 行&lt;/strong&gt;和&lt;strong&gt;第 1 列&lt;/strong&gt;，分别打印。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;思考题：&lt;/strong&gt; 第 3 题如果用 Pandas 的 &lt;code&gt;loc&lt;/code&gt; 写法 &lt;code&gt;scores.loc[1:3]&lt;/code&gt;，结果会一样吗？&lt;/p&gt;</description></item><item><title>NumPy 常见问题答疑：10 个索引与切片的疑问（基础索引、Fancy Indexing、布尔掩码、视图副本） | NumPy 数组计算实战</title><link>https://machinelearningwithme.com/course/numpy/chapter02/faq/</link><pubDate>Sun, 25 Oct 2026 09:30:00 +0800</pubDate><guid>https://machinelearningwithme.com/course/numpy/chapter02/faq/</guid><description>&lt;h1 id="第-23-节-常见问题"&gt;第 2.3 节 常见问题&lt;a class="anchor" href="#%e7%ac%ac-23-%e8%8a%82-%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;这一节收集了初学者在 NumPy &lt;strong&gt;取数阶段&lt;/strong&gt;最常卡的 10 个问题。每个问题都给出&lt;strong&gt;直接答案&lt;/strong&gt;，能跑代码的都附上完整示例。&lt;/p&gt;
&lt;blockquote class='book-hint tip'&gt;
&lt;p&gt;&lt;strong&gt;怎么用这一节&lt;/strong&gt;
不用通读。遇到问题用 Ctrl+F 搜关键词，直接跳到对应那条。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;准备一下数据，下面每题都会用到：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020;font-weight:bold"&gt;import&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;numpy&lt;/span&gt; &lt;span style="color:#007020;font-weight:bold"&gt;as&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;np&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;scores &lt;span style="color:#666"&gt;=&lt;/span&gt; np&lt;span style="color:#666"&gt;.&lt;/span&gt;array([&lt;span style="color:#40a070"&gt;80&lt;/span&gt;, &lt;span style="color:#40a070"&gt;90&lt;/span&gt;, &lt;span style="color:#40a070"&gt;75&lt;/span&gt;, &lt;span style="color:#40a070"&gt;100&lt;/span&gt;, &lt;span style="color:#40a070"&gt;60&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;matrix &lt;span style="color:#666"&gt;=&lt;/span&gt; np&lt;span style="color:#666"&gt;.&lt;/span&gt;array([
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#40a070"&gt;1&lt;/span&gt;, &lt;span style="color:#40a070"&gt;2&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#40a070"&gt;4&lt;/span&gt;, &lt;span style="color:#40a070"&gt;5&lt;/span&gt;, &lt;span style="color:#40a070"&gt;6&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#40a070"&gt;7&lt;/span&gt;, &lt;span style="color:#40a070"&gt;8&lt;/span&gt;, &lt;span style="color:#40a070"&gt;9&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="q1numpy-数组的索引为什么从-0-开始"&gt;Q1：NumPy 数组的索引为什么从 0 开始？&lt;a class="anchor" href="#q1numpy-%e6%95%b0%e7%bb%84%e7%9a%84%e7%b4%a2%e5%bc%95%e4%b8%ba%e4%bb%80%e4%b9%88%e4%bb%8e-0-%e5%bc%80%e5%a7%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;答：&lt;/strong&gt; 因为 NumPy 沿用了 &lt;strong&gt;C 语言&lt;/strong&gt;的规矩，而 Python 列表也一样。&lt;/p&gt;
&lt;p&gt;原因很朴素：下标表示的是「&lt;strong&gt;往后数几个&lt;/strong&gt;」。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;第 1 个元素，往后数 0 个 → 下标 &lt;code&gt;0&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;第 2 个元素，往后数 1 个 → 下标 &lt;code&gt;1&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;第 5 个元素，往后数 4 个 → 下标 &lt;code&gt;4&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这样算起来最省事，NumPy 底层做偏移计算也最快。&lt;/p&gt;
&lt;blockquote class='book-hint note'&gt;
&lt;p&gt;&lt;strong&gt;那 &lt;code&gt;arr[1]&lt;/code&gt; 到底是第 1 个还是第 2 个？&lt;/strong&gt;
&lt;strong&gt;第 2 个。&lt;/strong&gt; &lt;code&gt;arr[1]&lt;/code&gt; 是「下标为 1 的那个」，也就是&lt;strong&gt;第 2 个&lt;/strong&gt;元素。
建议养成习惯，念的时候说「下标 1」而不是「第 1 个」，就不会绕晕。&lt;/p&gt;</description></item></channel></rss>