如果你开始学习机器学习或者Python数据计算,大概率会在第一行代码看到:

CODE
import numpy as np

很多人会直接复制,但并不知道:NumPy到底是什么?为什么几乎所有AI代码都离不开它?

这一篇我们不讲复杂算法,只用最直观的方式,理解NumPy和它最基础的用法。

NumPy到底是什么?

一句话解释:NumPy是Python的科学计算基础库。

它解决的问题很简单:Python本身可以计算数字,但处理大量数据比较慢,对数学结构支持有限。

NumPy 提供了更快的数字计算,更适合数学运算的数据结构、向量与矩阵操作能力。

简单说:Python = 通用语言,NumPy = 专门处理数字的工具箱。

如果你想看官方介绍或完整文档,可以直接访问NumPy官网:https://numpy.org/

NumPy最重要的概念:数组(Array)

NumPy的核心只有一个:

CODE
ndarray(多维数组)

你可以把它理解成:一个装满数字的容器。 比如:

CODE
import numpy as np
a = np.array([1,2,3,4])

这就是一个 NumPy 数组。 和普通list的区别:

Python list
NumPy array
可以混合类型
类型统一
灵活
高效
偏编程
偏数学

创建数组的几种方式

1、手动创建

CODE
a = np.array([1,2,3,4])

2、创建全0数组(常用于初始化数据)

CODE
np.zeros(4)

显示结果如下:

CODE
[0. 0. 0. 0.]

3、创建连续数字

CODE
np.arange(5)

显示结果如下:

CODE
[0 1 2 3 4]

4、随机数据

CODE
np.random.rand(4)

生成随机数字,这是机器学习中非常常见的操作。

数组的基本信息:shape

NumPy里最重要的属性之一: 

CODE
a.shape

表示数组的结构。 例如,如果返回:

CODE
(4,)

表示: 一维,4个元素。

访问数据:索引与切片

1、索引:

NumPy 从 0 开始计数。

CODE
a[0]   # 第一个元素
a[-1]  # 最后一个元素

2、切片(非常常用):

CODE
a[1:4]

意思是:

CODE
从位置1开始,到4之前

NumPy最神奇的地方:整体运算

这是NumPy最核心的体验。

假设: 

CODE
a = np.array([1,2,3,4])

1、加法 

CODE
a + 10

结果是:

CODE
[11 12 13 14]

这不是循环,而是整体计算。

2、乘法

CODE
a * 2

结果是:

CODE
[2 4 6 8]

3、常见统计操作 

CODE
np.sum(a)   # 求和
np.mean(a)  # 平均值

向量之间的计算

NumPy默认执行:元素一一对应计算

CODE
a = np.array([1,2,3])
b = np.array([4,5,6])
a + b

结果是:

CODE
[5 7 9]

如果长度不同,会报错。 

这也是 NumPy 保证数学正确性的方式。

点积(Dot Product)

这是NumPy最重要的操作之一。

CODE
np.dot(a,b)

计算过程:

CODE
1×4 + 2×5 + 3×6

结果是一个数字。

几乎所有机器学习模型都在反复执行这个操作。

二维数组:矩阵

当数据变成多行时:

CODE
X = np.array([
 [1,2],
 [3,4],
 [5,6]
])

这就是矩阵。

矩阵的访问方式如下:

CODE
X[0]      # 第一行
X[1,0]    # 第二行第一列

NumPy 的一个重要特性是,当输入:

CODE
X[0]

返回的其实是一个向量,这点在后续机器学习中非常关键。

为什么大家都用NumPy?

总结有三点:

1、写起来简单,数学表达几乎可以直接变成代码。

2、计算更快,底层使用高性能实现,不需要自己写复杂优化。

3、是整个AI生态的基础,几乎所有库,如Pandas、Scikit-learn、TensorFlow和PyTorch等的底层都建立在NumPy思想之上。


这一篇,我们没有讲复杂模型,而是回到机器学习真正的基础——NumPy,以及如何用数组、向量和简单的运算,把数学表达转化为可以被计算机高效执行的代码。

对AI学习来说,NumPy的意义远不止一个工具库。很多看起来复杂的模型,底层都只是向量和矩阵的运算。越早建立这种“数据结构 + 计算方式”的直觉,后面学习模型、优化算法或深度学习时就越轻松。

附录:本文涉及的专有名词中英文对照(标红为最核心)

中文术语
英文术语
简单说明
数组
Array
NumPy 的核心数据结构,用于存储同类型数字的数据集合。
多维数组
N-dimensional Array (ndarray)
NumPy 的标准数据结构,可表示一维、二维或更高维数据。
数据类型
Data Type (dtype)
数组中元素的数据类型,例如 int64、float64。
形状
Shape
描述数组结构的属性,例如 (4,) 表示一维4个元素。
一维数组
1-D Array
只有一个维度的数组,通常用于表示向量。
二维数组
2-D Array
具有行和列结构的数组,常用于表示矩阵或数据表。
索引
Indexing
通过位置访问数组元素,例如 a[0]。
切片
Slicing
按区间提取数组的一部分,例如 a[1:4]。
标量
Scalar
单个数值,与向量或矩阵相对。
元素级运算
Element-wise Operation
数组之间按对应位置逐元素进行计算。
随机数组
Random Array
由随机数构成的数组,常用于初始化或模拟数据。
重塑
Reshape
改变数组形状而不改变数据内容。
科学计算
Scientific Computing
利用计算机进行数值计算与数学建模的领域。
并行计算
Parallel Computing
同时执行多个计算任务,提高效率。