672 字
3 分钟
页面浏览--访问次数--
数据分析|统计函数

9.1 统计函数概述#

下表列出了本节涉及的统计函数:

函数功能
np.sum(x)求和
np.mean(x)平均值
np.median(x)中位数
np.std(x)标准差
np.var(x)方差
np.min(x) / np.max(x)最小值 / 最大值
np.argmin(x) / np.argmax(x)最小值 / 最大值的索引
np.percentile(x, q)计算第 q 百分位数
np.cumsum(x)累积和
np.cumprod(x)累积积

9.2 求和#

np.sum() 计算数组中所有元素的总和:

import numpy as np
# 基本求和
print(np.sum([1, 2, 3]))
# 对数组求和
arr = np.array([15, 5, 12, 9, 7, 16, 19, 15])
print(np.sum(arr))

输出:

6
98

9.3 平均值#

np.mean() 计算数组元素的算术平均值:

print(np.mean([1, 2, 3]))
arr = np.array([15, 5, 12, 9, 7, 16, 19, 15])
print(np.mean(arr))

输出:

2.0
12.25

9.4 中位数#

np.median() 计算数组元素的中位数(排序后位于中间位置的值):

print(np.median([1, 2, 4, 8]))
arr = np.array([15, 5, 12, 9, 7, 16, 19, 15])
print(np.median(arr))

输出:

3.0
13.5

9.5 方差与标准差#

方差(np.var())衡量数据的离散程度,标准差(np.std())是方差的算术平方根。

print(np.var([1, 2, 3])) # 方差
print(np.std([1, 2, 3])) # 标准差

输出:

0.6666666666666666
0.816496580927726

均值相同但方差不同的对比:

arr1 = np.array([1, 2, 1, 2, 1, 1, 1, 2])
arr2 = np.array([1, 0, 3, 0, 0, 0, 4, 3])
print(np.mean(arr1)) # 平均值相同
print(np.mean(arr2))
print(np.var(arr1)) # 方差不同
print(np.var(arr2))

输出:

1.375
1.375
0.234375
2.484375

两个数组的平均值相同(1.375),但 arr2 的方差远大于 arr1,说明 arr2 的数据分布更加分散。


9.6 最大值与最小值#

np.max() / np.min() 返回最值,np.argmax() / np.argmin() 返回最值的索引位置:

arr = np.array([15, 5, 12, 9, 7, 16, 19, 15])
print(arr)
print(np.max(arr), np.argmax(arr)) # 最大值及其索引
print(np.min(arr), np.argmin(arr)) # 最小值及其索引

输出:

[15 5 12 9 7 16 19 15]
19 6
5 1
  • 最大值为 19,位于索引 6。
  • 最小值为 5,位于索引 1。

9.7 分位数#

np.percentile(x, q) 计算数组的第 q 百分位数,np.median() 本质上等价于 np.percentile(x, 50)。

np.random.seed(0)
arr = np.random.randint(0, 100, 4)
print(arr)
print(np.median(arr)) # 中位数(第50百分位数)
print(np.percentile(arr, 25)) # 第25百分位数

输出:

[44 47 64 67]
55.5
46.25

第25百分位数的计算过程:

排序后: 44 47 64 67
位置 = 0.25 × 3 = 0.75
结果 = (47 - 44) × 0.75 + 44 = 46.25

9.8 累积和与累积积#

np.cumsum() 计算累积和,np.cumprod() 计算累积积:

arr = np.array([1, 2, 3])
print(np.sum(arr)) # 总和
print(np.cumsum(arr)) # 累积和
print(np.cumprod(arr)) # 累积积

输出:

6
[1 3 6]
[1 2 6]
  • 累积和:[1, 1+2, 1+2+3] = [1, 3, 6]
  • 累积积:[1, 1×2, 1×2×3] = [1, 2, 6]

9.9 本节小结#

本节完成了以下内容:

  • 掌握了 np.sum()、np.mean()、np.median() 等集中趋势统计函数。
  • 掌握了 np.var()、np.std() 等离散程度统计函数。
  • 掌握了 np.max() / np.min() 及 np.argmax() / np.argmin() 最值查找。
  • 掌握了 np.percentile() 分位数计算及其原理。
  • 掌握了 np.cumsum() 和 np.cumprod() 累积运算。

数据分析

连载中

第 9 篇,共 21 篇本文属于系列

数据分析|统计函数
https://luq-blog.xyz/posts/2026-07-01-data-notes-09-statistics/
作者
Luquiescene
发布于
2026-07-01
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取

评论

正在加载评论...

最后更新于 ,距今已过 95 天

部分内容可能已过时