Python | 数学计算那点事儿不完全总结 - 计算平均值、几何平均值等等

news/2024/10/18 12:06:59/

本文主要总结数据统计、分析过程中经历的一些数学计算实现方式。

Update: 2022 / 12 / 1


Python | 数据数学计算那点事儿不完全总结 - 计算平均值、几何平均值等等

  • 计算平均值
    • 方法
    • 示例
  • 几何平均值
    • 方法
    • 示例
  • 近似
    • 方法
      • 判断近似与否
        • 方法
          • math.isclose()
        • 示例
  • 参考链接


计算平均值

参考这里 1


方法

方法说明
sumlen使用 sumlen 内置函数对列表中的数据进行处理。好处是,不必遍历元素,减少代码长度。
mean使用统计 statistics 模块中的均值函数轻松计算 平均值
numpy.meannumpy 库是用于大型多维数组的常用库。它还具有大量输血函数,可用于数组以执行各种任务。一个重要的功能是 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_meanPython 3.8 开始,标准库随 geometric_mean 函数一起作为 statistics 模块的一部分。
scipy.stats.mstats.gmeanscipy 中有 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()

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 – 是相对容差,它是 ab 之间允许的最大差值,相对于 ab 的较大绝对值。例如,要设置 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


参考链接


  1. Python查找list平均值 ↩︎

  2. 关于math:Python:在python中做几何均值的简便方法? ↩︎

  3. Python math.isclose() 方法 ↩︎


http://www.ppmy.cn/news/684.html

相关文章

node.js的认识与安装

一、node.js的认识 &#x1f4d6; 简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于 Chrome JavaScript 运行时建立的一个开源的、跨平台的JavaScript 运行时环境。 Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境&#xff0c;基于 Google 的 V8 引…

【Linux】命令

常用命令 帮助&#xff08;Manual Pages&#xff0c;Manual&#xff1a;手册&#xff0c;特指参考文件&#xff09; man man <command_name> 打开目录&#xff08;change directory&#xff09; cd /etc/ cd /home 查看当前所在目录 pwd 创建一个名为 file 的文件&…

抖音用户浏览行为数据分析与挖掘

下文部分代码省略&#xff0c;完整项目代码及数据集链接&#xff1a;抖音用户浏览行为数据分析与挖掘 目录1.特征指标构建0. 项目介绍与说明**数据集说明**浏览行为1. 数据简单处理2. 特征指标构建用户指标分析&#xff1a;作者指标分析&#xff1a;作品指标分析&#xff1a;3.…

搭建gataway鉴权流程

先完善Login接口 controller RestController RequestMapping("/login") Api(value "管理API",tags "用户登录") CrossOrigin public class LoginController {Autowiredprivate IAdUserService adUserService;PostMapping("/in")Api…

C语言 结构体

C语言 结构体一、结构体的声明和初始化1. 结构体声明2. 结构体初始化二、typedef 重定义结构体三、结构体成员的类型四、结构体成员的访问五、结构体传参六、结构体的自引用七、结构体的内存对齐对齐规则程序清单1程序清单2程序清单3程序清单4修改默认对齐数一、结构体的声明和…

【使用 BERT 的问答系统】第 3 章 :词嵌入介绍

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

Springboot科学养宠 omap1计算机毕业设计-课程设计-期末作业-毕设程序代做

Springboot科学养宠 omap1计算机毕业设计-课程设计-期末作业-毕设程序代做 【免费赠送源码】Springboot科学养宠 omap1计算机毕业设计-课程设计-期末作业-毕设程序代做本源码技术栈&#xff1a; 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 开发软件&#xf…

Spring Cloud教程 第十一弹 Spring Cloud Config连接git和数据库

Spring Cloud Config1、什么是Spring Cloud Config?2、EnvironmentRepository抽象3、实战&#xff1a;使用git作为配置源1、搭建config server2、搭建config client3、config server HTTP接口4、实战&#xff1a;使用数据库作为配置源5、实战&#xff1a;复合配置源1、什么是S…