numpy介绍

NumPy(Numerical Python)是Python生态中最核心的科学计算库之一,提供高性能多维数组对象(`ndarray`)及丰富的数学函数。以下是系统介绍:

### **1. 核心特性**
- **多维数组**:`ndarray`是同构数据容器,支持任意维度(1D向量、2D矩阵、3D张量等)。
- **广播机制**:不同形状数组间的高效算术运算(如`[1,2,3] + [[1],[2],[3]]`→`[[2,3,4],[3,4,5],[4,5,6]]`)。
- **向量化操作**:避免Python循环,底层用C实现,运算速度提升10~100倍。
- **内存优化**:连续内存块存储,支持视图(view)而非复制数据,减少内存占用。

### **2. 核心功能**
#### **数组操作**
“`python
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])  # 2×3矩阵
b = a.reshape(3, 2)                 # 重塑形状
c = a.T                             # 转置
“`
#### **数学运算**
- **逐元素运算**:`np.sin(a)`, `a**2`, `a * b`(广播)
- **线性代数**:`np.dot(a, b)`(矩阵乘法)、`np.linalg.eigvals(a)`(特征值)
- **统计函数**:`a.mean(axis=0)`(按列求均值)、`a.std()`(标准差)

#### **索引与切片**
- 花式索引:`a[[0,1], [1,2]]` → 取(0,1)和(1,2)位置的元素
- 布尔索引:`a[a > 3]` → 筛选大于3的元素

### **3. 生态整合**
- **SciPy**:基于NumPy扩展科学计算(信号处理、优化等)。
- **Pandas**:`DataFrame`底层使用NumPy数组。
- **TensorFlow/PyTorch**:张量运算与NumPy接口互通(如`torch.from_numpy()`)。

### **4. 性能对比示例**
“`python
# Python列表 vs NumPy数组百万元素平方
import time
size = 10**6
py_list = list(range(size))
np_arr = np.arange(size)

# Python循环(慢)
start = time.time()
[x**2 for x in py_list]
print(time.time() – start)  # ~0.1s

# NumPy向量化(快)
start = time.time()
np_arr**2
print(time.time() – start)  # ~0.001s
“`

### **5. 学习资源**
- **官方文档**:[https://numpy.org/doc/](https://numpy.org/doc/)
- **快速入门**:[NumPy教程](https://numpy.org/devdocs/user/quickstart.html)
- **书籍**:《Python for Data Analysis》(Wes McKinney著)

NumPy是数据科学、机器学习、工程计算的基石,掌握它可大幅提升Python数值计算效率。

This entry was posted in 人工智能 and tagged , . Bookmark the permalink.