NumPy
NumPy(Numerical Python)是 Python 科学计算的基础库。它提供了高性能的多维数组对 象(ndarray)和用于处理这些数组的工具。
NumPy 的核心优势:
- 高效的数组运算:底层用 C 实现,比 Python 列表快 10-100 倍
- 广播机制:不同形状的数组也能进行运算
- 丰富的数学函数:线性代数、傅里叶变换、随机数生成等
- 生态系统基石:Pandas、SciPy、Scikit-learn 等都基于 NumPy
基础入门
导入和创建数组
# 推荐的导入方式
import numpy as np
# 其他导入方式(不推荐)
import numpy # 需要写 numpy.array,太长
from numpy import * # 污染命名空间
from numpy import array, sin # 只导入部分函数
tip
推荐使用 import numpy as np,这是 NumPy 官方文档和社区的标准约定。
为什么使用 NumPy 而不是 Python 列表?
# Python 列表的局限性
a = [1, 2, 3]
# a + 1 # TypeError: 列表不支持与整数相加
# 需要使用列表推导式
b = [x + 1 for x in a]
print(b) # [2, 3, 4]
# NumPy 数组支持向量化运算
import numpy as np
a = np.array([1, 2, 3])
b = a + 1
print(b) # [2 3 4]
# 数组间的运算(对应元素)
c = a + b
print(c) # [3 5 7]
# 对应元素相乘
print(a * b) # [2 6 12]
# 对应元素乘方
print(a ** b) # [1 8 81]
tip
NumPy 的性能优势:
# Python 列表:需要循环
result = []
for i in range(1000000):
result.append(i * 2)
# NumPy:向量化运算,快 10-100 倍
arr = np.arange(1000000)
result = arr * 2