NumPy 科学计算库

精选 Numpy 常用指令与核心速查备忘单,涵盖高频用法、配置参数与实用技巧。 NumPy 是 Python 科学计算的核心基础库。本备忘单为 Python 与数据科学初学者提供高频函数与 API 的速查参考。

#🚀 入门指引

#入门介绍

开始使用前,需先导入 NumPy 模块:

import numpy as np

#数据导入/导出 (Importing/exporting)

方法/代码 功能描述
np.loadtxt('file.txt') 从文本文件加载数据
np.genfromtxt('file.csv',delimiter=',') 从 CSV 文件加载数据
np.savetxt('file.txt',arr,delimiter=' ') 将数组写入文本文件
np.savetxt('file.csv',arr,delimiter=',') 将数组写入 CSV 文件

#创建数组 (Creating Arrays)

方法/代码 功能描述
np.array([1,2,3]) 创建一维数组 (1D Array)
np.array([(1,2,3),(4,5,6)]) 创建二维数组 (2D Array)
np.zeros(3) 创建长度为 3、全为 0 的一维数组
np.ones((3,4)) 创建 3x4 全为 1 的二维数组
np.eye(5) 创建 5x5 单位矩阵 (对角线为 1,其余为 0)
np.linspace(0,100,6) 创建在 0 至 100 之间均匀分布的 6 个数值数组
np.arange(0,10,3) 创建在 0 至 10 之间按步长 3 递增的数组 (如 [0,3,6,9])
np.full((2,3),8) 创建 2x3 全为 8 的二维数组
np.random.rand(4,5) 创建 4x5 包含 0~1 之间随机浮点数的数组
np.random.rand(6,7)*100 创建 6x7 包含 0~100 之间随机浮点数的数组
np.random.randint(5,size=(2,3)) 创建 2x3 包含 0~4 之间随机整数的数组

#数组属性检查 (Inspecting Properties)

方法/代码 功能描述
arr.size 返回数组中包含的元素总个数
arr.shape 返回数组的维度尺寸结构 (行数, 列数)
arr.dtype 返回数组中元素的数据类型
arr.astype(dtype) 将数组元素的类型强制转换为指定 dtype
arr.tolist() 将 NumPy 数组转换为标准 Python 列表
np.info(np.eye) 查看 np.eye 函数的官方帮助文档

#复制/排序/重塑 (Copying/sorting/reshaping)

方法/代码 功能描述
np.copy(arr) 深拷贝数组至新的内存空间
arr.view(dtype) 创建指定数据类型的数组浅拷贝视图
arr.sort() 对数组元素进行升序排序
arr.sort(axis=0) 沿指定的轴 (Axis) 维度对数组排序
two_d_arr.flatten() 将二维数组 two_d_arr 展开展平为一维数组
arr.T 转置矩阵 (行列置换)
arr.reshape(3,4) 在不改变数据的前提下将数组重塑为 3 行 4 列
arr.resize((5,6)) 改变数组形状为 5x6 (新元素用 0 填充)

#添加/删除元素 (Adding/removing Elements)

方法/代码 功能描述
np.append(arr,values) 在数组末尾追加元素
np.insert(arr,2,values) 在索引 2 之前插入新元素
np.delete(arr,3,axis=0) 删除数组在索引 3 处的整行
np.delete(arr,4,axis=1) 删除数组在索引 4 处的整列

#组合与拆分 (Combining/splitting)

方法/代码 功能描述
np.concatenate((arr1,arr2),axis=0) 将 arr2 作为新行拼接至 arr1 末尾
np.concatenate((arr1,arr2),axis=1) 将 arr2 作为新列拼接至 arr1 末尾
np.split(arr,3) 将数组均分为 3 个子数组
np.hsplit(arr,5) 在第 5 个索引处水平切分数组

#索引/切片/子集筛选 (Indexing/slicing/subsetting)

方法/代码 功能描述
arr[5] 获取索引为 5 的元素
arr[2,5] 获取二维数组中第 2 行第 5 列的元素
arr[1]=4 将索引为 1 的元素赋值为 4
arr[1,3]=10 将二维数组中第 1 行第 3 列的元素赋值为 10
arr[0:3] 切片获取索引 0,1,2 的元素 (二维数组上即获取前 3 行)
arr[0:3,4] 获取前 3 行中第 4 列的元素
arr[:2] 获取索引 0,1 的元素 (二维数组上即前 2 行)
arr[:,1] 获取所有行中第 1 列的元素
arr<5 返回由布尔值 True/False 组成的掩码数组
(arr1<3) & (arr2>5) 组合多个条件返回逻辑与判定布尔数组
~arr 取反翻转布尔数组
arr[arr<5] 使用条件筛选返回所有数值小于 5 的元素数组

#向量/矩阵数学运算 (Vector Math)

方法/代码 功能描述
np.add(arr1,arr2) 逐元素相加 arr1 + arr2
np.subtract(arr1,arr2) 逐元素相减 arr1 - arr2
np.multiply(arr1,arr2) 逐元素相乘 arr1 * arr2
np.divide(arr1,arr2) 逐元素相除 arr1 / arr2
np.power(arr1,arr2) 逐元素求幂 arr1 ^ arr2
np.array_equal(arr1,arr2) 若两数组形状与所有元素完全一致则返回 True
np.sqrt(arr) 计算数组中每个元素的平方根
np.sin(arr) 计算数组中每个元素的正弦值
np.log(arr) 计算数组中每个元素的自然对数
np.abs(arr) 计算数组中每个元素的绝对值
np.ceil(arr) 向上取整
np.floor(arr) 向下取整
np.round(arr) 四舍五入取整

#标量广播运算 (Scalar Math)

方法/代码 功能描述
np.add(arr,1) 数组中的每个元素均加 1
np.subtract(arr,2) 数组中的每个元素均减 2
np.multiply(arr,3) 数组中的每个元素均乘以 3
np.divide(arr,4) 数组中的每个元素均除以 4 (除以 0 时返回 np.nan)
np.power(arr,5) 数组中的每个元素均求 5 次方

#统计特征计算 (Statistics)

方法/代码 功能描述
np.mean(arr,axis=0) 沿指定轴计算平均值 (Mean)
arr.sum() 计算数组中所有元素的求和总值
arr.min() 计算数组中的最小值
arr.max(axis=0) 计算指定轴上的最大值
np.var(arr) 计算数组的方差 (Variance)
np.std(arr,axis=1) 计算指定轴上的标准差 (Standard Deviation)
arr.corrcoef() 计算数组的相关系数矩阵 (Correlation coefficient)