Python
- 基础
-
库
- 其他
- argparse命令行参数解析
- asyncio自带异步编程库
- aiofiles异步文件读写库
- beautifulsoup4_HTML_XML解析库
- colorama_在终端输出漂亮的字
- datasets数据集处理
- html2text
- httpx_HTTP请求库
- litellm
- loguru日志库
- numpy科学计算基础库
- pillow图像处理
- pydantic数据验证
- pyyaml
- requests_HTTP请求库
- tenacity重试
- tiktoken计算Token量
- torch机器学习_深度学习框架
- tomli TOML文件解析库
- tomllib 自带TOML文件解析库
- unidiff_文本_文件差异对比
- uvicorn_Web服务器
- langchain
**numpy(全称 Numerical Python)** 是 Python 中一个非常重要的 **科学计算基础库**,主要用于**高效地处理多维数组(矩阵)和进行各种数学运算**。
---
## 一、numpy 是什么?(简单理解)
- numpy 是 Python 的一个第三方库,但它几乎是所有**科学计算、数据分析、机器学习、深度学习**项目的**基础工具**。
- 它提供了一个强大的数据结构:**ndarray(N 维数组)**,这是 numpy 最核心的对象。
- 相比 Python 原生的列表(list),numpy 数组在**运算速度、内存效率、功能丰富性**上都有巨大优势。
---
## 二、numpy 的主要功能
| 功能 | 说明 |
|------|------|
| **多维数组(ndarray)** | numpy 的核心数据结构,用于高效存储和操作大量数值数据 |
| **向量化运算** | 支持对整个数组进行数学运算(不用写循环,速度快) |
| **丰富的数学函数** | 提供大量的数学、统计、线性代数、傅里叶变换等函数 |
| **广播机制(Broadcasting)** | 让不同形状的数组也能进行数学运算 |
| **线性代数运算** | 如矩阵乘法、求逆、行列式、特征值等 |
| **随机数生成** | 提供多种概率分布的随机数生成方法 |
| **文件读写** | 支持从文件中高效读取/保存数组数据(如 .npy、.npz 格式) |
---
## 三、numpy 有什么用?(应用场景)
numpy 广泛应用于:
- **科学计算**
- **数据分析**
- **机器学习 / 深度学习(如配合 TensorFlow、PyTorch、scikit-learn)**
- **图像处理(通常先转为 numpy 数组处理)**
- **金融建模**
- **物理仿真**
- **工程计算**
几乎所有涉及**数值计算**的 Python 库(如 pandas、matplotlib、scikit-learn、tensorflow 等)**都依赖 numpy**。
---
## 四、安装 numpy
使用 pip 安装:
```bash
pip install numpy
```
---
## 五、简单使用示例
### 示例 1:创建 numpy 数组并进行运算
```python
import numpy as np # 约定俗成的导入方式
# 创建一个 numpy 数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 数组相加(向量化运算,无需写循环)
c = a + b
print(c) # 输出: [5 7 9]
```
### 示例 2:生成一个 3x3 的矩阵并计算
```python
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("矩阵:\n", matrix)
# 计算每列的平均值
print("每列平均值:", np.mean(matrix, axis=0))
```
---
## 六、numpy 的核心对象:ndarray
- **ndarray(N-dimensional array)** 是 numpy 最核心的数据类型,表示一个**N 维数组**。
- 它相比 Python 的 list,具有:
- 更快的运算速度
- 更低的内存占用
- 更丰富和高效的函数支持
---
## 七、总结(中文)
> **numpy 是 Python 中用于科学计算的基础库,核心是高效的多维数组(ndarray)及其相关的数学运算。**
>
> 几乎所有 Python 数据分析、机器学习、科学计算的项目都会用到它,是 Python 技术栈中非常重要的“基石库”之一。
**如果你要做任何与数字、矩阵、批量计算有关的事情,numpy 几乎都是第一步要学的工具。**