AI大模型-numpy
·
numpy 简介
NumPy(Numerical Python)是 Python 生态中用于科学计算的核心库,提供高性能的多维数组对象(ndarray)及相关的数学运算工具。其核心特性包括:
- 高效数组操作:基于 C 语言实现,支持向量化运算,避免显式循环。
- 广播机制:允许不同形状的数组进行数学运算。
- 线性代数:内置矩阵运算、傅里叶变换、随机数生成等功能。
- 跨平台兼容:与 Pandas、SciPy、Matplotlib 等库无缝集成。
核心功能
数组创建
通过 np.array() 从列表或元组创建数组,支持指定数据类型(dtype):
import numpy as np
arr = np.array([1, 2, 3], dtype=np.float32)
其他常用创建方法:
np.zeros((2, 3)):创建 2x3 的全零数组。np.ones(shape):创建全 1 数组。np.arange(0, 10, 2):类似range,生成等差序列。
数组操作
- 索引与切片:语法与 Python 列表类似,支持多维索引:
arr_2d = np.array([[1, 2], [3, 4]]) print(arr_2d[1, 0]) # 输出 3 - 形状调整:
reshape()改变数组维度,flatten()展开为一维数组。 - 合并与分割:
np.concatenate()连接数组,np.split()分割数组。
数学运算
支持逐元素运算(+, -, *, /)和矩阵乘法(@ 或 np.dot()):
a = np.array([1, 2])
b = np.array([3, 4])
print(a * b) # 输出 [3, 8](逐元素相乘)
广播机制
广播机制:就是这个数组里面的1,2,3一旦运算就需要每个元素都需要运算
允许不同形状的数组进行运算,例如标量与数组相加:
arr = np.array([1, 2, 3])
print(arr + 5) # 输出 [6, 7, 8]
性能优化
- 避免循环:优先使用内置函数(如
np.sum()、np.mean())。 - 预分配内存:提前创建空数组(
np.empty())填充数据。 - 使用
np.vectorize:将普通函数转换为支持广播的向量化函数。
应用场景
- 数据预处理:归一化、缺失值填充。
- 机器学习:特征矩阵运算(如线性回归)。
- 图像处理:像素数组操作。
示例代码
计算欧氏距离(向量差的 L2 范数):
def euclidean_distance(a, b):
return np.sqrt(np.sum((a - b) ** 2))
NumPy 的官方文档(numpy.org)提供了完整的 API 参考和教程。
更多推荐
所有评论(0)