CHAPTER 05 / 37
NumPy:为什么几乎所有AI都离不开它?
看懂NumPy,其实就是看懂AI背后最真实的计算方式——复杂模型,往往只是数组在高速运转。
如果你开始学习机器学习或者Python数据计算,大概率会在第一行代码看到:
import numpy as np很多人会直接复制,但并不知道:NumPy到底是什么?为什么几乎所有AI代码都离不开它?
这一篇我们不讲复杂算法,只用最直观的方式,理解NumPy和它最基础的用法。
NumPy到底是什么?
一句话解释:NumPy是Python的科学计算基础库。
它解决的问题很简单:Python本身可以计算数字,但处理大量数据比较慢,对数学结构支持有限。
NumPy 提供了更快的数字计算,更适合数学运算的数据结构、向量与矩阵操作能力。
简单说:Python = 通用语言,NumPy = 专门处理数字的工具箱。
如果你想看官方介绍或完整文档,可以直接访问NumPy官网:https://numpy.org/
NumPy最重要的概念:数组(Array)
NumPy的核心只有一个:
ndarray(多维数组)你可以把它理解成:一个装满数字的容器。 比如:
import numpy as np
a = np.array([1,2,3,4])这就是一个 NumPy 数组。 和普通list的区别:
创建数组的几种方式
1、手动创建
a = np.array([1,2,3,4])2、创建全0数组(常用于初始化数据)
np.zeros(4)显示结果如下:
[0. 0. 0. 0.]3、创建连续数字
np.arange(5)显示结果如下:
[0 1 2 3 4]4、随机数据
np.random.rand(4)生成随机数字,这是机器学习中非常常见的操作。
数组的基本信息:shape
NumPy里最重要的属性之一:
a.shape表示数组的结构。 例如,如果返回:
(4,)表示: 一维,4个元素。
访问数据:索引与切片
1、索引:
NumPy 从 0 开始计数。
a[0] # 第一个元素
a[-1] # 最后一个元素2、切片(非常常用):
a[1:4]意思是:
从位置1开始,到4之前NumPy最神奇的地方:整体运算
这是NumPy最核心的体验。
假设:
a = np.array([1,2,3,4])1、加法
a + 10结果是:
[11 12 13 14]这不是循环,而是整体计算。
2、乘法
a * 2结果是:
[2 4 6 8]3、常见统计操作
np.sum(a) # 求和
np.mean(a) # 平均值向量之间的计算
NumPy默认执行:元素一一对应计算
a = np.array([1,2,3])
b = np.array([4,5,6])
a + b结果是:
[5 7 9]如果长度不同,会报错。
这也是 NumPy 保证数学正确性的方式。
点积(Dot Product)
这是NumPy最重要的操作之一。
np.dot(a,b)计算过程:
1×4 + 2×5 + 3×6结果是一个数字。
几乎所有机器学习模型都在反复执行这个操作。
二维数组:矩阵
当数据变成多行时:
X = np.array([
[1,2],
[3,4],
[5,6]
])这就是矩阵。
矩阵的访问方式如下:
X[0] # 第一行
X[1,0] # 第二行第一列NumPy 的一个重要特性是,当输入:
X[0]返回的其实是一个向量,这点在后续机器学习中非常关键。
为什么大家都用NumPy?
总结有三点:
1、写起来简单,数学表达几乎可以直接变成代码。
2、计算更快,底层使用高性能实现,不需要自己写复杂优化。
3、是整个AI生态的基础,几乎所有库,如Pandas、Scikit-learn、TensorFlow和PyTorch等的底层都建立在NumPy思想之上。
这一篇,我们没有讲复杂模型,而是回到机器学习真正的基础——NumPy,以及如何用数组、向量和简单的运算,把数学表达转化为可以被计算机高效执行的代码。
对AI学习来说,NumPy的意义远不止一个工具库。很多看起来复杂的模型,底层都只是向量和矩阵的运算。越早建立这种“数据结构 + 计算方式”的直觉,后面学习模型、优化算法或深度学习时就越轻松。
附录:本文涉及的专有名词中英文对照(标红为最核心)
(4,) 表示一维4个元素。 | ||
a[0]。 | ||
a[1:4]。 | ||