Python学习笔记21:进阶篇(十)常见标准库使用之math模块,random模块和statistics模块

前言

本文是根据python官方教程中标准库模块的介绍,自己查询资料并整理,编写代码示例做出的学习笔记。

根据模块知识,一次讲解单个或者多个模块的内容。

教程链接:https://docs.python.org/zh-cn/3/tutorial/index.html

数学

Python中还有一些模块是应用于数学方面的模块。

math

math模块。主要用于处理数学相关的计算需求,包括但不限于基本的算术运算、对数、三角函数、常数定义等

常用函数

  1. math.sqrt(x): 计算非负数x的平方根。
  2. math.pi: 提供π的值,约等于3.14159。
  3. math.sin(x): 计算弧度x的正弦值。
  4. math.cos(x): 计算弧度x的余弦值。
  5. math.tan(x): 计算弧度x的正切值。
  6. math.exp(x): 计算e的x次幂,其中e约等于2.71828。
  7. math.log(x[, base]): 计算x的自然对数(默认)或以base为底的对数。
  8. math.log10(x): 计算x的以10为底的对数。
  9. math.ceil(x): 返回不小于x的最小整数。
  10. math.floor(x): 返回不大于x的最大整数。
  11. math.fabs(x): 计算x的绝对值。
  12. math.factorial(x): 计算x的阶乘(x必须是非负整数)。
  13. math.gcd(a, b): 计算a和b的最大公约数。

示例

import math

# math.sqrt(x): 计算非负数x的平方根
sqrt_example = math.sqrt(16)
print("Square root of 16 is", sqrt_example)
print("===============分隔符==============")

# math.pi: 提供π的值
pi_example = math.pi
print("Value of pi is approximately", pi_example)
print("===============分隔符==============")

# math.sin(x), math.cos(x), math.tan(x): 计算弧度x的三角函数值
angle_degrees = 45
angle_radians = math.radians(angle_degrees)
sin_example = math.sin(angle_radians)
cos_example = math.cos(angle_radians)
tan_example = math.tan(angle_radians)
print(f"Sine of {angle_degrees} degrees is {sin_example}")
print(f"Cosine of {angle_degrees} degrees is {cos_example}")
print(f"Tangent of {angle_degrees} degrees is {tan_example}")
print("===============分隔符==============")

# math.exp(x): 计算e的x次幂
exp_example = math.exp(1)
print("e^1 is", exp_example)
print("===============分隔符==============")

# math.log(x[, base]): 计算x的对数
log_example = math.log(100)  # 自然对数
log_base_10_example = math.log(100, 10)  # 以10为底
print("Natural log of 100 is", log_example)
print("Log base 10 of 100 is", log_base_10_example)
print("===============分隔符==============")

# math.log10(x): 计算x的以10为底的对数
log10_example = math.log10(100)
print("Log base 10 of 100 is", log10_example)
print("===============分隔符==============")

# math.ceil(x), math.floor(x): 向上取整和向下取整
ceil_example = math.ceil(3.7)
floor_example = math.floor(3.7)
print("Ceiling of 3.7 is", ceil_example)
print("Floor of 3.7 is", floor_example)
print("===============分隔符==============")

# math.fabs(x): 计算x的绝对值
fabs_example = math.fabs(-42)
print("Absolute value of -42 is", fabs_example)
print("===============分隔符==============")

# math.factorial(x): 计算x的阶乘
factorial_example = math.factorial(5)
print("Factorial of 5 is", factorial_example)
print("===============分隔符==============")

# math.gcd(a, b): 计算a和b的最大公约数
gcd_example = math.gcd(48, 18)
print("GCD of 48 and 18 is", gcd_example)

在这里插入图片描述

random

random模块提供了生成随机数的功能,适用于各种用途,比如模拟、游戏开发、安全应用中的随机数需求等。它包含了一系列用于生成不同分布的随机数的函数。

常用函数

  1. random.randint(a, b): 生成一个位于a和b之间(含两端)的随机整数。
  2. random.random(): 生成一个位于[0, 1)范围内的随机浮点数。
  3. random.uniform(a, b): 生成一个位于a和b之间(含两端)的随机浮点数。
  4. random.choice(seq): 从序列seq中随机选择一个元素。
  5. random.shuffle(x): 随机地就地打乱列表x的元素顺序。
  6. random.sample(population, k): 从总体序列中无放回地选择k个随机元素。

示例

import random


random_integer = random.randint(1, 100)
print("Random integer between 1 and 100 is", random_integer)
print("===============分隔符==============")
random_float = random.random()
print("Random float between 0 and 1 is", random_float)
print("===============分隔符==============")
random_uniform = random.uniform(1, 10)
print("Random uniform float between 1 and 10 is", random_uniform)
print("===============分隔符==============")
my_list = [1, 2, 3, 4, 5]
random_selection = random.choice(my_list)
print("Randomly selected item from list is", random_selection)
print("===============分隔符==============")
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print("List after shuffling is", my_list)
print("===============分隔符==============")
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
sample = random.sample(my_list, 3)

在这里插入图片描述

statistics

statistics模块提供了用于计算一系列数值数据的基本统计信息的函数,如平均数、中位数、众数等。它适用于数据分析、数学计算等领域。

常用函数

  1. statistics.mean(data): 计算数据集的算术平均值。
  2. statistics.median(data): 找到数据集的中位数。
  3. statistics.mode(data): 返回数据集的众数,如果有多个众数,则会引发StatisticsError或返回其中一个。
  4. statistics.stdev(data[, xbar]): 计算样本标准差,可选参数xbar用于指定平均值。
  5. statistics.variance(data[, xbar]): 计算样本方差,可选参数xbar用于指定平均值。
  6. statistics.quantiles(data, n): 计算数据集的分位数,n表示分位数的数量或具体的分位数值。

实例

import statistics


data = [1, 2, 3, 4, 5]
mean_value = statistics.mean(data)
print("Mean of data is", mean_value)
print("===============分隔符==============")
data = [1, 2, 3, 4, 5]
median_value = statistics.median(data)
print("Median of data is", median_value)
print("===============分隔符==============")
data = [1, 2, 2, 3, 4, 4, 4, 5]
try:
    mode_value = statistics.mode(data)
    print("Mode of data is", mode_value)
except statistics.StatisticsError as e:
    print("Data has multiple modes or no mode:", e)
print("===============分隔符==============")
data = [10, 12, 23, 23, 16, 23, 21, 16]
stdev_value = statistics.stdev(data)
print("Sample standard deviation of data is", stdev_value)
print("===============分隔符==============")
data = [1.5, 2.5, 2.5, 2.75, 3.25, 4.75]
variance_value = statistics.variance(data)
print("Sample variance of data is", variance_value)
print("===============分隔符==============")
data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
quantiles = statistics.quantiles(data, n=4)  # 计算四个分位数
print("Quantiles of data are", quantiles)

在这里插入图片描述

结尾

关于Python中数学的相关模块,按教程中就讲这三个模块。由于都是一些函数调用,也没有特别的知识点要讲。不过也要熟悉常用的数学函数的使用,项目中是很容易用到的。

作业

  1. 使用math模块的常用函数。
  2. 使用random中的常用函数。
  3. 使用statistics中的常用函数,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/744881.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微软结束将数据中心置于海底的实验

2016 年,微软 宣布了一项名为"纳蒂克项目"(Project Natick)的实验。基本而言,该项目旨在了解数据中心能否在海洋水下安装和运行。经过多次较小规模的测试运行后,该公司于 2018 年春季在苏格兰海岸外 117 英尺…

从0开始C++(八):多态的实现

相关文章: 从0开始C(一):从C到C 从0开始C(二):类、对象、封装 从0开始C(三):构造函数与析构函数详解 从0开始C(四):作…

React+TS前台项目实战(十九)-- 全局Input组件封装:加载状态和清除功能的实现

文章目录 前言Input组件1. 功能分析2. 代码详细注释3. 使用方式4. 效果展示 总结 前言 今天我们来封装一个input输入框组件,并提供一些常用的功能,你可以选择不同的 尺寸、添加前缀、显示加载状态、触发回调函数、自定义样式 等等。这些功能在这个项目中…

vite+vue3+ts项目搭建流程 (pnpm, eslint, prettier, stylint, husky,commitlint )

vitevue3ts项目搭建 项目搭建项目目录结构 项目配置自动打开项目eslint①vue3环境代码校验插件②修改.eslintrc.cjs配置文件③.eslintignore忽略文件④运行脚本 prettier①安装依赖包②.prettierrc添加规则③.prettierignore忽略文件④运行脚本 stylint①.stylelintrc.cjs配置文…

【云原生】Kubernetes网络知识

Kubernetes网络管理 文章目录 Kubernetes网络管理一、案例概述二、案例前置知识点2.1、Kubernetes网络模型2.2、Docker网络基础2.3、Kubernetes网络通信2.3.1、Pod内容器与内容之间的通信2.3.2、Pod与Pod之间的通信 2.4、Flannel网络插件2.5、Calico网络插件2.5.1、Calico网络模…

免费下载电子书的网站

在如今的数字化时代,电子书已成为许多人书籍阅读的首选。下面小编就和大家分享一些提供免费查找下载电子书服务的网站,这些网站不仅资源丰富,而且操作简便。 免费下载电子书的网站:https://www.bgrdh.com/favorites/1355.html 1…

数据可视化期末考试(编程)

1.KNN 1.新增数据的分类 import pandas as pd # 您的原始数据字典 data { 电影名称: [电影1, 电影2, 电影3, 电影4, 电影5], 打斗镜头: [10, 5, 108, 115, 20], 接吻镜头: [110, 89, 5, 8, 200], 电影类型: [爱情片, 爱情片, 动作片, 动作片, 爱情片] } …

昇思25天学习打卡营第8天 | 模型的保存与加载

内容介绍:在训练网络模型的过程中,实际上我们希望保存中间和最后的结果,用于微调(fine-tune)和后续的模型推理与部署,本章节我们将介绍如何保存与加载模型。 具体内容: 1. 导包 import numpy…

1.1 MySQL用户管理

1.1.1 用户的定义 用户名主机域 mysql> select user,host,password from mysql.user; --------------------------------------------------------------- | user | host | password | -----------------------------------------…

el-form重置后input无法输入问题

新增用户遇到的问题: 如果你没有为 formData 设置默认值,而只是将其初始化为空对象 {},则在打开dialog时,正常输入, formdata会变成如下 但是,打开后,直接使用 resetFields 或直接清空表单&…

LLDB 详解

LLDB 详解 LLDB 详解编译器集成优势LLDB 的主要功能命令格式原始(raw)命令选项终止符: -- LLDB 中的变量唯一匹配原则helpexpressionprint、call、po控制流程:continue、next、step、finishregister read / writethread backtracethread retu…

基于weixin小程序新生报到系统的设计

管理员账户功能包括:系统首页,个人中心,学生管理,班级信息管理,师资力量管理,宿舍信息管理,宿舍安排管理,签到信息管理,论坛管理 小程序功能包括:系统首页&am…

考研数学一有多难?130+背后的残酷真相

考研数学一很难 大家平时在网上上看到很多人说自己考了130,其实这些人只占参加考研数学人数的极少部分,有个数据可以展示出来考研数学到底有多难: 在几百万考研大军中,能考到120分以上的考生只有2%。绝大多数人的分数集中在30到…

【MySQL进阶之路 | 高级篇】MySQL8.0索引新特性->降序索引与隐藏索引

1. 支持降序索引 降序索引以降序存储键值.虽然在语法上,从MySQL4版本已经支持降序索引的语法了,但实际上该DESC定义是被忽略的.知道MySQL8.x版本才开始真正支持降序索引.(仅限于InnoDB存储引擎). MySQL在8.0版本前创建的仍然是升序索引,使用…

【C++11(二)】lambda表达式和可变参数模板

一、可变参数模板 C11的新特性可变参数模板 能够让您创建可以接受 可变参数的函数模板和类模板 // Args是一个模板参数包&#xff0c;args是一个函数形参参数包 // 声明一个参数包Args...args&#xff0c;这个参数包中可以包含0到任意个模板参数。 template <class ...Arg…

vue3 使用JsMind的方法,以及引入提示报错,无法找到模块“jsmind”的声明文件

最终结果&#xff1a; 一、使用&#xff1a;使用yarn或者npm 安装 yarn add jsmind npm install vue-jsmind 二、引入 两种方法&#xff1a;&#xff08;如果这样引入没问题按照这样引入&#xff09; import "jsmind/style/jsmind.css"; import JsMind from &quo…

【SSM】医疗健康平台-用户端-体检预约

知识目标 了解FreeMarker&#xff0c;能够简述FreeMarker的作用和生成文件的原理 熟悉FreeMarker的常用指令&#xff0c;能够在FTL标签中正确使用assign指令、include指令、if指令和list指令 掌握显示套餐列表功能的实现 掌握显示套餐详情功能的实现 掌握体检预约功能的实现…

nodejs——ejs模版遇到原型链污染产生rce

[GYCTF2020]Ez_Express 打开是一个登陆框 在源代码中找到 在代码里找到敏感关键字 找到merge 想到原型链污染 这里登陆只能用ADMIN才能登陆成功 但是这里index.php又设置了一个waf ban了admin的大小写 这里需要绕过这个waf 看注册这段代码 用的是这个toUpperCase()函数 之前…

【深度强化学习】如何使用多进程(multiprocessing、pipe)来加速训练

文章目录 实验结果实现思路思路1思路2 进程与线程介绍如何实现multiprocessing、Pipe的范例关于时间对比上的问题代码修改收敛为何不稳定 技巧进程资源抢占问题线程问题cpu和gpu问题 进阶&#xff08;还没看懂/还没实验&#xff09;附代码raw代码mul代码 实验结果 实验平台&am…

natsort 自然排序

1、安装 pip install natsort 2、为什么使用natsort 而不是sorted 在python中只需要调用sorted函数就可以了&#xff0c;但是这个函数有一个缺点&#xff0c;就是它是按照从第一位开始的顺序排列的。意思是&#xff1a; wav_file [1.wav, 13.wav, 9.wav, 2.wav,"23.wav…