<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>第 1 章：数组创建（Array Creation） on 跟我学机器学习</title><link>https://machinelearningwithme.com/course/numpy/chapter01/</link><description>Recent content in 第 1 章：数组创建（Array Creation） on 跟我学机器学习</description><generator>Hugo</generator><language>zh_CN</language><lastBuildDate>Sun, 25 Oct 2026 23:14:14 +0800</lastBuildDate><atom:link href="https://machinelearningwithme.com/course/numpy/chapter01/index.xml" rel="self" type="application/rss+xml"/><item><title>NumPy 数组创建详解：从 Python 列表到多维数组与随机数 | NumPy 数组计算实战</title><link>https://machinelearningwithme.com/course/numpy/chapter01/core-concepts/</link><pubDate>Sun, 25 Oct 2026 09:30:00 +0800</pubDate><guid>https://machinelearningwithme.com/course/numpy/chapter01/core-concepts/</guid><description>&lt;h1 id="第-11-节-核心知识点"&gt;第 1.1 节 核心知识点&lt;a class="anchor" href="#%e7%ac%ac-11-%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; 35 分钟&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;本节目标：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;会用 &lt;code&gt;np.array()&lt;/code&gt; 把列表变成数组，也知道二维数组怎么造；&lt;/li&gt;
&lt;li&gt;会用 &lt;code&gt;zeros&lt;/code&gt; / &lt;code&gt;ones&lt;/code&gt; / &lt;code&gt;full&lt;/code&gt; 生成指定形状的数组；&lt;/li&gt;
&lt;li&gt;分得清 &lt;code&gt;arange()&lt;/code&gt;（数几个）和 &lt;code&gt;linspace()&lt;/code&gt;（间隔多大）；&lt;/li&gt;
&lt;li&gt;会生成随机整数和随机浮点数，并且能锁住随机种子让结果复现；&lt;/li&gt;
&lt;li&gt;会用 &lt;code&gt;reshape()&lt;/code&gt; 变形，并且知道它对元素总数有什么硬要求。&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;h2 id="先说清楚一件事numpy-数组到底是什么"&gt;先说清楚一件事：NumPy 数组到底是什么&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%8bnumpy-%e6%95%b0%e7%bb%84%e5%88%b0%e5%ba%95%e6%98%af%e4%bb%80%e4%b9%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在动手之前，先建立一个直觉，不然每个函数都会显得很突兀。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NumPy 数组（&lt;code&gt;ndarray&lt;/code&gt;）就是「一堆同类型数字排成的方块」。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;拿 Excel 打个比方：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Excel 的一个单元格，可以放文字、数字、日期；&lt;/li&gt;
&lt;li&gt;NumPy 数组的&lt;strong&gt;每一个格子只能是数字&lt;/strong&gt;（或者全是文字，或者全是布尔值），不能混着来。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这个限制听起来很烦，但换来的是&lt;strong&gt;巨大的速度优势&lt;/strong&gt;——因为所有元素类型一样，NumPy 就能把它们打包成一块连续的内存，用 C 语言那种「批量算」的方式一次处理 thousands 个数字，而不是像 Python 循环那样一个一个调用。&lt;/p&gt;
&lt;blockquote class='book-hint important'&gt;
&lt;p&gt;&lt;strong&gt;一句话记住三个必查属性&lt;/strong&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;arr&lt;span style="color:#666"&gt;.&lt;/span&gt;ndim &lt;span style="color:#60a0b0;font-style:italic"&gt;# 几维&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;arr&lt;span style="color:#666"&gt;.&lt;/span&gt;shape &lt;span style="color:#60a0b0;font-style:italic"&gt;# 每个维度多长&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;arr&lt;span style="color:#666"&gt;.&lt;/span&gt;dtype &lt;span style="color:#60a0b0;font-style:italic"&gt;# 元素类型&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;任何一个陌生的 NumPy 数组，先打这三行，八成就知道它是什么了。&lt;/p&gt;&lt;/blockquote&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;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;np.ndarray&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;多维数组&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;[120., 135., 150.]&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;np.array&lt;/code&gt;（一维时）&lt;/td&gt;
					&lt;td&gt;就是普通 ndarray&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;shape = (3,)&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Python &lt;code&gt;list&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;什么都能装的清单&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;[120, 135, 150]&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;数组和列表最大的区别&lt;/strong&gt;：数组里所有元素类型必须一样，而且它支持「整体运算」——&lt;code&gt;arr * 2&lt;/code&gt; 是每个数都乘 2，而 &lt;code&gt;list * 2&lt;/code&gt; 是把列表复制两份。&lt;/p&gt;</description></item><item><title>NumPy 编程练习：5 道动手题学会数组创建（列表转换、zeros/ones、arange/linspace、随机数、reshape） | NumPy 数组计算实战</title><link>https://machinelearningwithme.com/course/numpy/chapter01/coding-exercises/</link><pubDate>Sun, 25 Oct 2026 09:30:00 +0800</pubDate><guid>https://machinelearningwithme.com/course/numpy/chapter01/coding-exercises/</guid><description>&lt;h1 id="第-12-节-编程练习"&gt;第 1.2 节 编程练习&lt;a class="anchor" href="#%e7%ac%ac-12-%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; 40 分钟&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;练习方式：&lt;/strong&gt; 新建一个 Jupyter Notebook，把下面的准备代码抄进去，然后&lt;strong&gt;每题独立完成&lt;/strong&gt;。先写，写不出来再展开答案。&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 id="准备先建好数据"&gt;准备：先建好数据&lt;a class="anchor" href="#%e5%87%86%e5%a4%87%e5%85%88%e5%bb%ba%e5%a5%bd%e6%95%b0%e6%8d%ae"&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;后面第 3 题会用到这张表，先建好：&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:#60a0b0;font-style:italic"&gt;# 5 个城市 × 4 个季度的销售额（万元）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sales &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;120.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;135.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;150.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;165.0&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ &lt;span style="color:#40a070"&gt;80.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;92.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;88.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;105.0&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#40a070"&gt;200.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;210.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;195.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;230.0&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [ &lt;span style="color:#40a070"&gt;60.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;72.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;85.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;78.0&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#40a070"&gt;150.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;145.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;160.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;175.0&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将-python-列表转换为-numpy-数组"&gt;练习 1：将 Python 列表转换为 NumPy 数组&lt;a class="anchor" href="#%e7%bb%83%e4%b9%a0-1%e5%b0%86-python-%e5%88%97%e8%a1%a8%e8%bd%ac%e6%8d%a2%e4%b8%ba-numpy-%e6%95%b0%e7%bb%84"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;题目：&lt;/strong&gt; 完成下面 5 个任务：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;把列表 &lt;code&gt;[10, 20, 30, 40]&lt;/code&gt; 转成 NumPy 数组，存到 &lt;code&gt;a&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;打印 &lt;code&gt;a&lt;/code&gt; 的 &lt;code&gt;shape&lt;/code&gt;、&lt;code&gt;ndim&lt;/code&gt;、&lt;code&gt;dtype&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;把嵌套列表 &lt;code&gt;[[1, 2], [3, 4]]&lt;/code&gt; 转成数组，存到 &lt;code&gt;b&lt;/code&gt;，打印它的 &lt;code&gt;shape&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;把 &lt;code&gt;[1, 2, 3.5]&lt;/code&gt; 转成数组，打印 &lt;code&gt;dtype&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;打印 &lt;code&gt;a * 2&lt;/code&gt; 和 &lt;code&gt;[10, 20, 30, 40] * 2&lt;/code&gt; 的结果，对比一下。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;思考题：&lt;/strong&gt; 第 4 题里，列表里只有一个小数，为什么整个数组都变成浮点数了？&lt;/p&gt;</description></item><item><title>NumPy 常见问题答疑：10 个数组创建必踩的坑（列表转数组、zeros/ones、arange/linspace、reshape） | NumPy 数组计算实战</title><link>https://machinelearningwithme.com/course/numpy/chapter01/faq/</link><pubDate>Sun, 25 Oct 2026 09:30:00 +0800</pubDate><guid>https://machinelearningwithme.com/course/numpy/chapter01/faq/</guid><description>&lt;h1 id="第-13-节-常见问题"&gt;第 1.3 节 常见问题&lt;a class="anchor" href="#%e7%ac%ac-13-%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 入门阶段最常卡的 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&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 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 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 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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="q1numpy-数组与-python-列表有什么区别"&gt;Q1：NumPy 数组与 Python 列表有什么区别？&lt;a class="anchor" href="#q1numpy-%e6%95%b0%e7%bb%84%e4%b8%8e-python-%e5%88%97%e8%a1%a8%e6%9c%89%e4%bb%80%e4%b9%88%e5%8c%ba%e5%88%ab"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;答：&lt;/strong&gt; 五个字：&lt;strong&gt;类型统一、运算整体、速度快&lt;/strong&gt;。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;&lt;/th&gt;
					&lt;th&gt;Python 列表&lt;/th&gt;
					&lt;th&gt;NumPy 数组&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;元素类型&lt;/td&gt;
					&lt;td&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;/td&gt;
					&lt;td&gt;不支持，要写循环&lt;/td&gt;
					&lt;td&gt;支持，&lt;code&gt;arr * 2&lt;/code&gt; 逐元素乘 2&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;内存&lt;/td&gt;
					&lt;td&gt;分散存储，每个元素是独立对象&lt;/td&gt;
					&lt;td&gt;连续存储的一块内存&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;速度&lt;/td&gt;
					&lt;td&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;/td&gt;
					&lt;td&gt;用嵌套列表凑，很别扭&lt;/td&gt;
					&lt;td&gt;原生支持 &lt;code&gt;shape&lt;/code&gt; / &lt;code&gt;ndim&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&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;a_list &lt;span style="color:#666"&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;a_array &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;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&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020"&gt;print&lt;/span&gt;(a_list &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;# [1, 2, 3, 1, 2, 3] ← 复制两遍&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;(a_array &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;# [2 4 6] ← 每个数乘 2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;实际用起来的差别&lt;/strong&gt;，比如你想把一列价格打八折：&lt;/p&gt;</description></item></channel></rss>