
书: https://pan.baidu.com/s/1hMg-9fMkkzntAfHoLymQMA?pwd=2tx9
笔记如下:
- NumPy简介:NumPy是Python科学计算的基础库,提供高性能的多维数组对象(ndarray)和数学函数。
- 数组创建:
np.array([1, 2, 3])创建一维数组np.zeros((3,3))创建全零矩阵np.arange(10)类似Python的range
- 数组属性:
ndarray.shape数组维度ndarray.dtype数据类型ndarray.size元素总数
- 数组操作:
- 索引和切片(
arr[1:3]) - 布尔索引(
arr[arr > 5]) - 花式索引(
arr[[0,2,4]])
- 数组运算:
- 逐元素运算(
+,-,*,/) - 矩阵乘法(
np.dot(A,B)或A @ B) - 广播机制(不同形状数组的运算)
- 常用数学函数:
np.sin(),np.cos()三角函数np.exp(),np.log()指数和对数np.sqrt()平方根
- 统计函数:
np.mean()平均值np.median()中位数np.std()标准差
- 线性代数:
np.linalg.inv()矩阵求逆np.linalg.eig()特征值和特征向量np.linalg.solve()解线性方程组
- 随机数生成:
np.random.rand()均匀分布np.random.randn()标准正态分布np.random.randint()随机整数
- 文件IO:
np.save()/np.load()保存和加载数组np.savetxt()/np.loadtxt()文本文件读写
- 数组拼接与分割:
np.concatenate()数组拼接np.vstack()/np.hstack()垂直/水平堆叠np.split()数组分割
- 数组重塑:
arr.reshape((2,3))改变形状arr.flatten()展平为一维数组
- 排序和搜索:
np.sort()排序np.argsort()返回排序索引np.where()条件搜索
- 掩码数组:
np.ma.masked_array()处理缺失值np.ma.masked_where()条件掩码
- 性能优化:
- 向量化操作避免循环
- 使用
np.einsum()进行爱因斯坦求和约定
- 通用函数(ufunc):
np.add.reduce()累加np.multiply.outer()外积
- 结构化数组:
- 定义复合数据类型(
dtype=[('name', 'S10'), ('age', 'i4')]) - 类似数据库表的操作
- 定义复合数据类型(
- 内存布局:
arr.flags查看内存信息np.ascontiguousarray()确保连续内存
- 与Pandas交互:
- Pandas的DataFrame与NumPy数组相互转换
- 使用
df.values获取NumPy数组
- 实际应用案例:
- 图像处理(数组作为像素矩阵)
- 机器学习数据预处理
- 数值模拟和科学计算