| 分类 | 函数 | 功能说明 |
| 基本数学 | np.sqrt(x) | 计算平方根 |
| np.exp(x) | 计算指数(e^x) | |
| np.log(x) | 计算自然对数(ln(x)) | |
| np.sin(x) | 计算正弦值 | |
| np.abs(x) | 计算绝对值 | |
| np.power(a, b) | 计算 a 的 b 次幂 | |
| np.round(x, n) | 四舍五入(保留 n 位小数) | |
| 统计 | np.sum(x) | 求和 |
| np.mean(x) | 计算均值 | |
| np.median(x) | 计算中位数 | |
| np.std(x) | 计算标准差 | |
| np.var(x) | 计算方差 | |
| np.min(x) / np.max(x) | 查找最小值/最大值 | |
| np.percentile(x, q) | 计算分位数(q: 0~100) | |
| 比较 | np.greater(a, b) | 元素级比较 a > b |
| np.less(a, b) | 元素级比较 a < b | |
| np.equal(a, b) | 元素级比较 a == b | |
| np.logical_and(a, b) | 逻辑与(逐元素) | |
| np.where(condition, x, y) | 根据条件选择元素 | |
| 排序 | np.sort(x) | 返回排序后的副本 |
| x.sort() | 原地排序(修改原数组) | |
| np.argsort(x) | 返回排序后的索引 | |
| np.lexsort(keys) | 多键排序(按最后一列优先) | |
| 去重 | np.unique(x) | 返回唯一值并排序 |
| np.in1d(a, b) | 检查 a 的元素是否在 b 中存在 | |
| 其他实用 | np.concatenate((a, b)) | 数组拼接 |
| np.split(x, indices) | 分割数组 | |
| np.reshape(x, shape) | 调整数组形状 | |
| np.copy(x) | 创建数组的深拷贝 | |
| np.isnan(x) | 检测 NaN 值 |
2.3.1 统计基础
| 统计量名称 | 数学定义与解释 | 常见用途 | 图示理解建议(文本) |
| 总和(和) | 所有数值相加的结果 | 总支出、总收入、总分等 | 直方图每列的“高度总和” |
| 计数(非空) | 所有非缺失值的数量 | 数据有效性统计 | 每列或每组的“存在数量” |
| 唯一计数 | 去重后的值的个数 | 用户量、种类、独特答案数等 | 彩色圆点图:每种颜色的数量 |
| 频率统计 | 每个唯一值出现的次数 | 投票结果、偏好选项统计 | 每种值为一柱的频数柱状图 |
| 平均数 | 所有数值的总和 / 个数 | 成绩均值、产品均价 | 数轴上“重心”位置 |
| 中位数 | 将所有值排序后位于中间位置的那个值 | 房价中位数、收入中位数 | 数轴上“居中”点 |
| 众数 | 出现频率最高的值;可能有多个 | 最常见类别、最流行选项 | 柱状图中“最高柱”的位置 |
| 众数个数 | 用于判断是否有多个众数 | 检查分布集中性 | 多个柱一样高 → 多众数 |
| 最大值 | 数据中的最大元素 | 最高温度、最大销量 | 数轴最右端的点 |
| 最小值 | 数据中的最小元素 | 最低成绩、最低价格 | 数轴最左端的点 |
| 分位数 | 把数据分成若干个相同大小的部分,第 q 个分位数是从小到大第 q 比例处的值 | 算工资等级、考试分数线 | 25%、50%、75%点→形成“箱型图” |
| 方差 | 所有数据与平均值之差的平方和的平均数(度量“离均差”的平方) | 波动性分析、风险评估 | 离平均数越远的点 → 贡献越大 |
| 标准差 | 方差的平方根;表示数据的波动程度 | 正态分布、偏差分析、误差建模 | 平均数±1个标准差 → 约68%数据范围 |
| 协方差 | 两个变量各自与均值之差乘积的平均值,衡量两者的变化趋势是否一致 | 股价、气温等变量共同趋势 | 趋势一致 → 正值,反向 → 负值 |
| 相关系数 | 标准化的协方差,范围为 [-1, 1],衡量两个变量之间的线性相关程度 | 预测模型、特征选择、相关分析 | 趋势完全相同 → 1,完全相反 → -1 |
2.3.2 基本数学函数
| 函数 | 功能说明 | 示例代码 | 示例输出 |
| np.sqrt(x) | 计算平方根 | np.sqrt([1, 4, 9]) | [1. 2. 3.] |
| np.exp(x) | 计算指数(e^x) | np.exp([0, 1]) | [1. 2.71828183] |
| np.log(x) | 计算自然对数(ln(x)) | np.log([1, np.e]) | [0. 1.] |
| np.sin(x) | 计算正弦值 | np.sin(np.pi/2) | 1.0 |
| np.abs(x) | 计算绝对值 | np.abs([-1, 2.5]) | [1. 2.5] |
| np.power(a, b) | 计算 a 的 b 次幂 | np.power(2, [3, 4]) | [8 16] |
| np.round(x, n) | 四舍五入(保留 n 位小数) | np.round(3.1415, 2) | 3.14 |
| np.ceil(x) | 向上取整(不小于原数的最小整数) | np.ceil([1.2, 3.7, -2.3]) | [ 2. 4. -2.] |
| np.floor(x) | 向下取整(不大于原数的最大整数) | np.floor([1.2, 3.7, -2.3]) | [ 1. 3. -3.] |
| np.rint(x) | 四舍五入到最近的整数;当需要舍入的数字恰好是 5 时,会看 5 前面的数字,如果是偶数则直接舍去 5,如果是奇数则进位。 | np.rint([1.5, 2.3, 3.7]) | [1. 2. 4.] |
| np.multiply(a, b) | 元素级乘法(等价于 a * b) | np.multiply([2, 3], [4, 5]) | [ 8 15] |
| np.divide(a, b) | 元素级除法(等价于 a / b) | np.divide([6, 8], [2, 4]) | [3. 2.] |
| np.isnan(x) | 检测 NaN 值 | np.isnan([1, np.nan, 3]) | [False True False] |
arr1 = np.random.randn(2, 3)
print(arr1)
print(np.abs(arr1))
print(np.ceil(arr1))
print(np.floor(arr1))
print(np.rint(arr1))
print(np.isnan(arr1))
print(np.multiply(arr1, 2))
print(np.divide(arr1, arr1))
2.3.3 统计函数
| 函数 | 功能说明 | 示例代码 | 示例输出 |
| np.sum(x) | 求和 | np.sum([[1, 2], [3, 4]]) | 10 |
| np.mean(x) | 计算均值 | np.mean([1, 2, 3, 4]) | 2.5 |
| np.median(x) | 计算中位数 | np.median([5, 2, 3, 1]) | 2.5 |
| np.std(x) | 计算标准差 | np.std([1, 2, 3]) | 0.81649658 |
| np.var(x) | 计算方差 | np.var([1, 2, 3]) | 0.66666667 |
| np.min(x) | 查找最小值 | np.min([[4, 2], [3, 1]]) | 1 |
| np.max(x) | 查找最大值 | np.max([[4, 2], [3, 1]]) | 4 |
| np.percentile(x, q) | 计算分位数(q: 0~100) | np.percentile([1,2,3,4], 50) | 2.5 |
| np.argmax(x) | 返回最大值的索引 | np.argmax([1, 3, 2]) | 1 |
| np.argmin(x) | 返回最小值的索引 | np.argmin([1, 3, 2]) | 0 |
| np.cumsum(x) | 计算累积和(逐元素累加结果) | np.cumsum([1, 2, 3]) | [1, 3, 6] |
| np.cumprod(x) | 计算累积积(逐元素累乘结果) | np.cumprod([1, 2, 3]) | [1, 2, 6] |
多维数组在计算时默认计算全部维度,可以使用axis参数指定按某一维度为轴心统计,axis=0按列统计、axis=1按行统计。
arr1 = np.random.randint(1, 5, (2, 3))
print(arr1)
print(np.mean(arr1))
print(np.sum(arr1))
print(np.max(arr1))
print(np.min(arr1))
print(np.std(arr1))
print(np.var(arr1))
print(np.argmax(arr1))
print(np.argmin(arr1))
print(np.cumsum(arr1))
print(np.cumprod(arr1))
print(np.cumprod(arr1, axis=1))
NumPy统计量表
| 统计量名称 | NumPy方法 | 数学定义与解释 | 常见用途 | 图示理解建议(文本) |
| 总和(和) | np.sum() | 所有数值相加的结果 | 总支出、总收入、总分等 | 直方图每列的”高度总和” |
| 计数 | np.size() | 数组中元素的总个数(包括缺失值需额外处理) | 数据规模统计 | 数组的”总格子数” |
| 非零计数 | np.count_nonzero() | 数组中非零元素的数量 | 稀疏矩阵分析、激活单元统计 | 点亮非零元素的网格图 |
| 平均数 | np.mean() | 所有数值的总和 / 个数 | 成绩均值、产品均价 | 数轴上”重心”位置 |
| 加权平均 | np.average(weights=) | Σ(值×权重)/Σ权重 | 加权评分、指数计算 | 不同权重的砝码平衡点 |
| 中位数 | np.median() | 将所有值排序后位于中间位置的值 | 房价中位数、收入中位数 | 数轴上”居中”点 |
| 众数 | scipy.stats.mode() | 出现频率最高的值(需SciPy支持) | 最常见类别、最流行选项 | 柱状图中”最高柱”的位置 |
| 最大值 | np.max() | 数据中的最大元素 | 最高温度、最大销量 | 数轴最右端的点 |
| 最小值 | np.min() | 数据中的最小元素 | 最低成绩、最低价格 | 数轴最左端的点 |
| 极差 | np.ptp() | 最大值与最小值的差(Peak-to-Peak) | 数据波动范围 | 数轴两端点之间的距离 |
| 方差 | np.var() | Σ(值-均值)²/n (ddof=0为总体方差) | 波动性分析、风险评估 | 离均值越远的点→贡献越大 |
| 标准差 | np.std() | 方差的平方根(ddof=0为总体标准差) | 正态分布、偏差分析 | 均值±1个标准差→约68%数据范围 |
| 分位数 | np.quantile() | 将数据分成q比例处的值(如0.25为下四分位数) | 工资等级、考试分数线 | 25%、50%、75%点→形成”箱型图” |
| 百分位数 | np.percentile() | 分位数的百分数表示(quantile(0.25)=percentile(25)) | 统计分布边界 | 标记特定百分比位置的参考线 |
| 协方差矩阵 | np.cov() | 变量间协方差的矩阵表示(每对变量的协方差) | 多元统计分析、PCA | 热力图显示变量间相关性 |
| 相关系数 | np.corrcoef() | 标准化的协方差矩阵,范围[-1,1] | 特征选择、相关分析 | 颜色深浅表示相关性强弱 |
| 直方图统计 | np.histogram() | 将数据划分到等宽区间并计数 | 分布分析、数据分箱 | 柱状图显示各区间的频数 |
| 累积和 | np.cumsum() | 从第一个元素开始逐步累加的结果数组 | 累计收益、增长曲线 | 阶梯式上升的折线图 |
| 累积积 | np.cumprod() | 从第一个元素开始逐步累乘的结果数组 | 复利计算、连乘效应 | 指数增长的曲线 |
| 唯一值 | np.unique() | 返回排序后的唯一值数组(可附加计数) | 类别统计、去重操作 | 彩色圆点图:每种颜色的数量 |
| 排序统计 | np.sort()+索引 | 排序后通过分位数位置获取统计量 | 非参数统计、排名分析 | 有序数轴上的位置标记 |
| 迹(矩阵) | np.trace() | 矩阵主对角线元素的和 | 线性代数运算、矩阵特征 | 矩阵对角线上元素的求和 |
| 范数 | np.linalg.norm() | 向量的模(如L2范数为欧几里得距离) | 相似度计算、正则化 | 向量箭头的长度 |
关键说明:
- 轴方向控制:多数函数支持axis参数(如axis=0列统计,axis=1行统计)
- 缺失值处理:需先用np.nan相关函数(如np.nansum())处理含NaN的数据
- 精度控制:可通过dtype参数指定计算精度(如np.mean(dtype=np.float64))
- 高维扩展:所有统计量均支持高维数组,通过axis元组指定多轴(如axis=(1,2))
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END












请登录后查看评论内容