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 randomrandom_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 statisticsdata = [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中的常用函数,

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

音频文件:16k16bit.mp3,16k16bit.wav,16k16bit.pcm,8k16bit.pcm有什么区别

这些文件是不同的音频格式和配置,它们的属性和使用方式有所不同。以下是每种格式的详细说明及其差异: 1. MP3 (16k16bit.mp3) 格式:MPEG-1 Audio Layer III (MP3)比特率:通常是可变的,但常见的是128 kbps到320 kbps&…

Hi3861 OpenHarmony嵌入式应用入门--LiteOS semaphore作为锁

CMSIS 2.0 接口中的 Semaphore(信号量)是用于嵌入式系统中多线程或中断服务例程(ISR)之间同步和共享资源保护的重要机制。Semaphore 是一种用于控制对多个共享资源访问的同步机制。它可以被看作是一个计数器,用于跟踪可…

【Qt6.3 基础教程 20】使用Qt Designer提升界面设计效率与质量

文章目录 前言什么是Qt Designer?为什么使用Qt Designer?Qt Designer的核心功能如何使用Qt Designer?整合.ui文件到项目中总结 前言 界面设计是软件开发中至关重要的一部分,它直接关系到用户的第一印象和使用体验。对于使用Qt框架…

计算机组成原理,网络安全,软件工程等上机报告

这些都是学长们当年的战斗,如果需要的话后台联系我

【从0实现React18】 (六) 完成commit提交流程并初步实现react-dom包,完成首屏渲染测试

前面,我们提到 React 更新流程有四个阶段: 触发更新(Update Trigger)调度阶段(Schedule Phase)协调阶段(Reconciliation Phase)提交阶段(Commit Phase) 之前…

并发编程理论基础——合适的线程数量和安全的局部变量(十)

多线程的提升方向 主要方向在于优化算法和将硬件的性能发挥到极致想要发挥出更多的硬件性能,最主要的就是提升I/O的利用率和CPU的利用率以及综合利用率操作系统已经解决了磁盘和网卡的利用率问题,利用中断机制还能避免 CPU 轮询 I/O 状态,也提…

【机器学习】在【R语言】中的应用:结合【PostgreSQL数据库】的【金融行业信用评分模型】构建

目录 1.数据库和数据集的选择 1.准备工作 2.PostgreSQL安装与配置 3.R和RStudio安装与配置 2.数据导入和预处理 1.连接数据库并导入数据 1.连接数据库 2.数据检查和清洗 1.数据标准化 2.拆分训练集和测试集 3.特征工程 1.生成新特征 2.特征选择 4.模型训练和评估…

使用Tailwindcss之后,vxe-table表头排序箭头高亮消失的问题解决

环境 vue2.7.8 vxe-table3.5.9 tailwindcss/postcss7-compat2.2.17 postcss7.0.39 autoprefixer9.8.8 问题 vxe-table 表格表头 th 的排序箭头在开启正序或逆序排序时,会显示蓝色高亮来提示用户表格数据处在排序情况下。在项目开启运行了tailwindcss之后&#xff0…

数据集的未来:如何利用亮数据浏览器提升数据采集效率

目录 一、跨境电商的瓶颈1、技术门槛2、语言与文化差异3、网络稳定性4、验证码处理和自动识别5、数据安全6、法规和合规 二、跨境电商现在是一个合适的商机吗?三、数据集与亮数据浏览器1、市场分析2、价格监控3、产品开发4、供应链优化5、客户分析 四、亮数据浏览器…

上海计算机学会2020年3月月赛C++丙组T4连乘问题

题目描述 给定 a1​,a2​,⋯,an​,请计算一组乘积,记为P1​,P2​,⋯,Pn​,其中 Pi​ 的定义如下: 也就是说,Pi​ 是 a1​ 到 an​ 的连乘再除去 ai​。由于答案可能比较大,输出每个 Pi​ 模 10000 的余数。…

==和equals区别

在编程中, 和 equals 都用于比较,但它们有不同的使用场景和意义。 在Java中: 运算符: 用于比较两个对象的引用是否相等。 比较的是两个对象在内存中的地址。 例如: String a new String("hello"); Stri…

算法05 模拟算法之二维数组相关内容详解【C++实现】

大家好,我是bigbigli,前面一节我们一节讲过一维数组的模拟了,如果还没看的话,可以👉点击此处。模拟算法还有很多内容需要讲,比如图像、日期相关的模拟算法,后续将继续更新,今天先来讲…

代码随想录——跳跃游戏Ⅱ(Leetcode 45)

题目链接 贪心 class Solution {public int jump(int[] nums) {if(nums.length 1){return 0;}int count 0;// 当前覆盖最远距离下标int curDistance 0;// 下一步覆盖距离最远下标int nextDistance 0;for(int i 0; i < nums.length; i){nextDistance Math.max(nums[…

前端面试题(九)答案版

姓名&#xff1a; 面试时间&#xff1a; 面试岗位&#xff1a; 1、SEO优化&#xff1f; SEO(Search Engine Optimization)即搜索引擎优化,是一种提高网站在搜索引擎中排名的技术。主要包括: - 网站内容优化:提高网页内容质量,关键词优化等 -…

快速修复mfc100u.dll丢失解决方案

相连文章&#xff1a;SecureCRT的安装破解 [详细过程2024] 有小伙伴向我反馈在打开SecureFX注册机之后显示【mfc100u.dll找不到】重装之后也没有用&#xff0c;这个是因为Microsoft Visual C的运行时组件和库出现了错误&#xff0c;直接选择重新安装就可以 出现这种情况的原因…

解析Java微服务架构:从零构建高性能系统

解析Java微服务架构&#xff1a;从零构建高性能系统 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我将为大家解析Java微服务架构&#xff0c…

等保测评:网络安全的重要屏障及其等级划分

在信息化高速发展的今天&#xff0c;网络安全已成为国家、企业乃至个人不容忽视的重要议题。其中&#xff0c;等保测评作为网络安全等级保护工作的重要环节&#xff0c;其意义愈发凸显。本文将详细解读等保测评的含义&#xff0c;并深入探讨其等级划分。 一、等保测评概述 等…

高性能并行计算华为云实验五:PageRank算法实验

目录 一、实验目的 二、实验说明 三、实验过程 3.1 创建PageRank源码 3.2 makefile的创建和编译 3.3 主机配置文件建立与运行监测 四、实验结果与分析 4.1 采用默认的节点数量及迭代次数进行测试 4.2 分析并行化下节点数量与耗时的变化规律 4.3 分析迭代次数与耗时的变…

MySQL——联表查询JoinON详解

Join 对比&#xff08;7种&#xff09; 代码演示&#xff1a; -- 查询参加了考试的同学&#xff08;学号&#xff0c;姓名&#xff0c;科目编号&#xff0c;分数&#xff09; SELECT * FROM student SELECT * FROM result/* 1. 分析需求&#xff1a;分析查询的字段来自哪些表&…

【C++学习】适合新手小白的C++的小型项目

对于学习C&#xff0c;以下是一些适合的小项目建议&#xff0c;这些项目可以帮助你熟悉C的基础语法、面向对象编程、文件操作、标准库等概念&#xff1a; 控制台计算器&#xff1a; 创建一个简单的控制台应用程序&#xff0c;实现一个计算器&#xff0c;能够执行基本的算术运算…