【Python快速上手(三十四)】- Python math 模块

news/2024/10/11 5:24:10/

目录

  • Python快速上手(三十四)- Python math 模块
    • Python math 模块详解
      • 1. 导入 math 模块
      • 2. 基本数学运算
      • 3. 三角函数
      • 4. 双曲函数
      • 5. 特殊函数
      • 6. 浮点运算辅助函数
      • 7. 常量
      • 8. 实际应用案例
      • 9. 小结

Python快速上手(三十四)- Python math 模块

Python math 模块详解

math 模块是Python标准库中用于数学运算的模块,提供了大量的数学函数和常量。本文将详细介绍 math 模块的主要功能,包括基本数学运算、对数和指数运算、三角函数、角度转换、双曲函数、特殊函数、浮点运算辅助函数、常量等。

1. 导入 math 模块

要使用 math 模块,首先需要导入它:

python">import math

2. 基本数学运算

2.1 绝对值和符号函数
math.fabs(x):返回x的绝对值。

python">print(math.fabs(-5))  # 输出:5.0

2.2 最大值、最小值、和
math.fsum(iterable):精确计算可迭代对象的和,避免精度丢失。

python">print(math.fsum([0.1, 0.2, 0.3]))  # 输出:0.6

2.3 幂运算和对数
math.pow(x, y):计算x的y次方。

python">print(math.pow(2, 3))  # 输出:8.0

math.sqrt(x):计算x的平方根。

python">print(math.sqrt(16))  # 输出:4.0

math.exp(x):计算e的x次方。

python">print(math.exp(1))  # 输出:2.718281828459045

math.log(x[, base]):计算x的对数,默认以e为底,可以指定底数。

python">print(math.log(8, 2))  # 输出:3.0
print(math.log(math.e))  # 输出:1.0

math.log10(x):计算x的10为底的对数。

python">print(math.log10(100))  # 输出:2.0

math.log2(x):计算x的2为底的对数。

python">print(math.log2(8))  # 输出:3.0

3. 三角函数

3.1 基本三角函数
math.sin(x):计算x的正弦值,x以弧度为单位。

python">print(math.sin(math.pi / 2))  # 输出:1.0

math.cos(x):计算x的余弦值,x以弧度为单位。

python">print(math.cos(math.pi))  # 输出:-1.0

math.tan(x):计算x的正切值,x以弧度为单位。

python">print(math.tan(math.pi / 4))  # 输出:1.0

3.2 反三角函数
math.asin(x):计算x的反正弦值,返回的角度以弧度为单位。

python">print(math.asin(1))  # 输出:1.5707963267948966 (即 pi/2)

math.acos(x):计算x的反余弦值,返回的角度以弧度为单位。

python">print(math.acos(-1))  # 输出:3.141592653589793 (即 pi)

math.atan(x):计算x的反正切值,返回的角度以弧度为单位。

python">print(math.atan(1))  # 输出:0.7853981633974483 (即 pi/4)

math.atan2(y, x):计算y/x的反正切值,返回的角度以弧度为单位。可以处理x为0的情况。

python">print(math.atan2(1, 1))  # 输出:0.7853981633974483 (即 pi/4)

3.3 角度转换
math.degrees(x):将弧度转换为角度。

python">print(math.degrees(math.pi))  # 输出:180.0

math.radians(x):将角度转换为弧度。

python">print(math.radians(180))  # 输出:3.141592653589793

4. 双曲函数

4.1 基本双曲函数
math.sinh(x):计算x的双曲正弦值。

python">print(math.sinh(1))  # 输出:1.1752011936438014

math.cosh(x):计算x的双曲余弦值。

python">print(math.cosh(1))  # 输出:1.5430806348152437

math.tanh(x):计算x的双曲正切值。

python">print(math.tanh(1))  # 输出:0.7615941559557649

4.2 反双曲函数
math.asinh(x):计算x的反双曲正弦值。

python">print(math.asinh(1))  # 输出:0.881373587019543

math.acosh(x):计算x的反双曲余弦值。

python">print(math.acosh(2))  # 输出:1.3169578969248166

math.atanh(x):计算x的反双曲正切值。

python">print(math.atanh(0.5))  # 输出:0.5493061443340548

5. 特殊函数

5.1 Gamma函数和对数Gamma函数
math.gamma(x):计算x的Gamma函数值。

python">print(math.gamma(5))  # 输出:24.0

math.lgamma(x):计算x的Gamma函数值的自然对数。

python">print(math.lgamma(5))  # 输出:3.1780538303479458

5.2 Erf和Erfc函数
math.erf(x):计算x的误差函数值。

python">print(math.erf(1))  # 输出:0.8427007929497148

math.erfc(x):计算x的余误差函数值。

python">print(math.erfc(1))  # 输出:0.15729920705028513

6. 浮点运算辅助函数

6.1 取整函数
math.ceil(x):返回大于等于x的最小整数。

python">print(math.ceil(4.2))  # 输出:5

math.floor(x):返回小于等于x的最大整数。

python">print(math.floor(4.8))  # 输出:4

math.trunc(x):返回x的整数部分,丢弃小数部分。

python">print(math.trunc(4.8))  # 输出:4

6.2 拆分和组合浮点数
math.modf(x):将x拆分为小数部分和整数部分,返回一个元组。

python">print(math.modf(4.5))  # 输出:(0.5, 4.0)

math.frexp(x):将x拆分为尾数和指数,返回一个元组。

python">print(math.frexp(8))  # 输出:(0.5, 4)

math.ldexp(m, e):计算 m * 2**e,即将尾数和指数组合成浮点数。

python">print(math.ldexp(0.5, 4))  # 输出:8.0

6.3 Copysign函数
math.copysign(x, y):返回具有y符号的x。

python">print(math.copysign(4, -1))  # 输出:-4.0

6.4 Nextafter函数
math.nextafter(x, y):返回从x移动到y的最小步长。

python">print(math.nextafter(1, 2))  # 输出:1.0000000000000002

6.5 Ulp函数
math.ulp(x):返回x的最小精度单位。

python">print(math.ulp(1.0))  # 输出:2.220446049250313e-16

7. 常量

7.1 数学常量
math.pi:圆周率π。

python">print(math.pi)  # 输出:3.141592653589793

math.e:自然常数e。

python">print(math.e)  # 输出:2.718281828459045

7.2 无穷大和NaN
math.inf:正无穷大。

python">print(math.inf)  # 输出:inf

math.nan:非数字(NaN)。

python">print(math.nan)  # 输出:nan

7.3 Tau
math.tau:圆周常数τ,等于2π。

python">print(math.tau)  # 输出:6.283185307179586

8. 实际应用案例

8.1 计算几何图形的面积和周长
8.1.1 计算圆的面积和周长

python">def circle_area(radius):return math.pi * math.pow(radius, 2)def circle_circumference(radius):return 2 * math.pi * radiusradius = 5
print("Circle Area:", circle_area(radius))  # 输出:78.53981633974483
print("Circle Circumference:", circle_circumference(radius))  # 输出:31.41592653589793

8.1.2 计算三角形的面积

python">def triangle_area(base, height):return 0.5 * base * heightbase = 10
height = 5
print("Triangle Area:", triangle_area(base, height))  # 输出:25.0

8.2 计算统计学中的标准差

python">def mean(data):return math.fsum(data) / len(data)def variance(data):m = mean(data)return math.fsum((x - m) ** 2 for x in data) / len(data)def standard_deviation(data):return math.sqrt(variance(data))data = [2, 4, 4, 4, 5, 5, 7, 9]
print("Standard Deviation:", standard_deviation(data))  # 输出:2.0

8.3 计算复利

python">def compound_interest(principal, rate, times, years):return principal * math.pow((1 + rate / times), times * years)principal = 1000
rate = 0.05
times = 4
years = 5
print("Compound Interest:", compound_interest(principal, rate, times, years))  # 输出:1283.3586785035118

8.4 数值积分
利用梯形法计算定积分:

python">def trapezoidal_rule(f, a, b, n):h = (b - a) / ns = (f(a) + f(b)) / 2for i in range(1, n):s += f(a + i * h)return s * hdef f(x):return math.sin(x)a = 0
b = math.pi
n = 1000
print("Integral:", trapezoidal_rule(f, a, b, n))  # 输出:2.0

9. 小结

通过本文,我们详细介绍了Python math 模块的功能和用法,包括基本数学运算、对数和指数运算、三角函数、角度转换、双曲函数、特殊函数、浮点运算辅助函数、常量等。math 模块提供了丰富的数学函数和常量,使得在Python中进行各种数学运算变得简单而高效。无论是在计算几何图形的面积和周长、统计学中的标准差、复利计算还是数值积分等方面,math 模块都能提供有力的支持。通过掌握 math 模块的使用方法,可以在各种科学计算和工程应用中得心应手。


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

相关文章

ubuntu-24.04系统静态Mac和IP配置

操作系统版本(桌面版):ubuntu-24.04-desktop-amd64.iso 原因说明:因网络的IP地址和Mac是预分配的,所以ubuntu系统需要修改网卡的mac地址和IP才能访问,网络查了半天资料都没成功,后再界面提示&a…

synopsys EDA 2016 合集 下载

包含如下安装包,如需安装服务也可联系我 FineSim_vL_2016.03 Laker201612 Library Compiler M-2016.12 Update Training PrimeTime M-2016.12 Update Training StarRC M-2016.12 Update Training SynopsysInstaller_v3.3 TSMC-65nm(OA) fm_vL-2016.03-SP1 fpga_vL-…

Xshell远程连接服务器需要哪些依赖包、

在安装 Xshell 时,您需要确保系统中安装了必要的依赖库文件。这些依赖库文件对于 Xshell 的正常运行至关重要。虽然具体的依赖库文件可能会根据您的操作系统和安装环境有所不同,但通常包括以下几种: libXdmcp-devellibXinerama-devellibXft-…

Mysql 插入或者更新 踩坑

最近在做电商项目,里面存在定时同步的代理商接口,接口xml里面使用了 MySQL的插入或者更新语法,我测试的时候老是发现数据没有更新,点进去才发现这个坑,路过的xdm 可以看下. 我的代码就不贴上来了,写一下具…

C# yolov8 TensorRT +ByteTrack Demo

C# yolov8 TensorRT ByteTrack Demo 目录 效果 说明 项目 代码 Form2.cs YoloV8.cs ByteTracker.cs 下载 参考 效果 说明 环境 NVIDIA GeForce RTX 4060 Laptop GPU cuda12.1cudnn 8.8.1TensorRT-8.6.1.6 版本和我不一致的需要重新编译TensorRtExtern.dll&…

持续总结中!2024年面试必问 20 道 Redis面试题(六)

上一篇地址:持续总结中!2024年面试必问 20 道 Redis面试题(五)-CSDN博客 十一、Redis集群的原理是什么? 集群是一种分布式系统架构,它由多个节点组成,这些节点共同工作以提供高可用性、扩展性…

009-Linux的管道和重定向

文章目录 前言 一、重定向 1.1、FD简介 1.2、FD举例 1.3、重定向简介 1.3.1、输出重定向 正确输出: 错误输出 案例1:正确输出重定向 案例2:错误输出重定向 ​编辑 案例3:正确和错误都输出重定向到相同位置 1.3.2、输…

数据结构(三)栈 队列 数组

2024年5月26日一稿(王道P78) 栈 基本概念 基本操作 顺序存储结构 基本操作 共享栈 链式存储结构 队列 基本概念 顺序存储结构 循环队列 链式存储结构 基本操作 双端队列 栈和队列的应用 括号匹配 表达式求值 递归 层次遍历 计算机系统 数组和特殊矩阵…