本文主要总结数据统计、分析过程中经历的一些数学计算实现方式。
Update: 2022 / 12 / 1
参考这里 1
| 方法 | 说明 |
|---|---|
sum 和 len | 使用 sum 和 len 内置函数对列表中的数据进行处理。好处是,不必遍历元素,减少代码长度。 |
mean | 使用统计 statistics 模块中的均值函数轻松计算 平均值。 |
numpy.mean | numpy 库是用于大型多维数组的常用库。它还具有大量输血函数,可用于数组以执行各种任务。一个重要的功能是 mean() 函数,该函数将为我们提供给定列表的平均值。 |
以 l = [106, 105, 101] 为例,
avg = sum(l) / len(l)
print(avg)
'''104.0'''from statistics import mean
avg = mean(l)
print(avg)
'''104'''import numpy as np
avg = np.mean(l)
print(avg)
'''104.0'''
参考这里 2
| 方法 | 说明 |
|---|---|
np.exp(np.mean(np.log(iterable))) | |
statistics.geometric_mean | 从 Python 3.8 开始,标准库随 geometric_mean 函数一起作为 statistics 模块的一部分。 |
scipy.stats.mstats.gmean | scipy 中有 gmean(),它可能比自定义实现更快,并且在数值上更稳定。 |
scipy.stats.gmean | |
df.product()**(1/len(df)) |
以 l = [106, 105, 101] 为例,
import numpy as np
geomean = np.exp(np.mean(np.log(l)))
print(geomean)
# 103.97737426933523from statistics import geometric_mean
geomean = geometric_mean(l)
print(geomean)
# 103.97737426933523from scipy.stats.mstats import gmean
geomean = gmean(l)
print(geomean)
# 103.97737426933523from scipy import stats
geomean = stats.gmean(l)
print(geomean)
# 103.97737426933523import pandas as pd
dfl = pd.DataFrame(l)
geomean=dfl.product()**(1/len(dfl))
print(geomean)
# 0 103.977374
# dtype: float64
math.isclose(),该方法返回用于检查两个值是否彼此接近,如果值接近,则返回 True,否则返回 False。根据给定的绝对和相对容差确定两个值是否被认为是接近的 3。
计算公式为 abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
语法如下,
math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)
参数说明:
a – 必需,数字。如果 x 不是一个数字,返回 TypeError。如果值为 0 或负数,则返回 ValueError。b – 必需,数字。如果 x 不是一个数字,返回 TypeError。如果值为 0 或负数,则返回 ValueError。rel_tol – 是相对容差,它是 a 和 b 之间允许的最大差值,相对于 a 或 b 的较大绝对值。例如,要设置 5% 的容差,请传递 rel_tol=0.05。默认容差为 1e-09,确保两个值在大约 9 位十进制数字内相同。rel_tol 必须大于零。abs_tol – 是最小绝对容差,对于接近零的比较很有用。abs_tol 必须至少为零。返回值:
返回一个布尔值,检查两个值是否彼此接近,如果值接近,则返回 True,否则返回 False。
import math# 输出两个值是否接近
print(math.isclose(8.0, 8.45, abs_tol = 0.4))
# False
print(math.isclose(8.0, 8.45, abs_tol = 0.5))
# True# 可用于浮点数判断
print(0.1+0.2==0.3)
# False
print(math.isclose(0.1+0.2, 0.3))
# True
Python查找list平均值 ↩︎
关于math:Python:在python中做几何均值的简便方法? ↩︎
Python math.isclose() 方法 ↩︎
上一篇:C语言学习笔记(十七)
下一篇:ES系列:基于磁盘容量的分配策略