本文主要总结数据统计、分析过程中经历的一些数学计算实现方式。
Update: 2022 / 12 / 1
Python | 数据数学计算那点事儿不完全总结 - 计算平均值、几何平均值等等
- 计算平均值
- 方法
- 示例
- 几何平均值
- 方法
- 示例
- 近似
- 方法
- 判断近似与否
- 方法
- math.isclose()
- 示例
- 参考链接
计算平均值
参考这里 1
方法
方法 | 说明 |
| 使用 |
| 使用统计 |
|
|
示例
以 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
方法
方法 | 说明 |
| |
| 从 |
|
|
| |
|
示例
以 l = [106, 105, 101]
为例,
import numpy as np
geomean = np.exp(np.mean(np.log(l)))
print(geomean)
# 103.97737426933523
from statistics import geometric_mean
geomean = geometric_mean(l)
print(geomean)
# 103.97737426933523
from scipy.stats.mstats import gmean
geomean = gmean(l)
print(geomean)
# 103.97737426933523
from scipy import stats
geomean = stats.gmean(l)
print(geomean)
# 103.97737426933523
import pandas as pd
dfl = pd.DataFrame(l)
geomean=dfl.product()**(1/len(dfl))
print(geomean)
# 0 103.977374
# dtype: float64
近似
方法
判断近似与否
方法
math.isclose()
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
参考链接