Python 3 math 库函数一览表
2021/7/25 20:38:01
本文主要是介绍Python 3 math 库函数一览表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
python math
模块提供了对 C 标准定义的数学函数的访问,该模块中的函数不能用于复数,如需支持复数,可使用 cmath
模块中的同名函数。
查看 math 模块的内容:
>>> import math >>> dir(math) ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp'] >>> help(math)
注意:该模块所有函数的返回值类型若未明确说明,都为浮点数。
数论和表示函数
函数 | 描述 | 实例 |
---|---|---|
math.ceil(x) | 返回 >= x 的最小整数 (int) | >>> math.ceil(2.2) 3 |
math.floor(x) | 返回 <= x 的最大整数 (int) | >>> math.floor(3.6) 3 |
math.modf(x) | 返回 x 的小数部分和整数部分,两个结果都带有 x 的符号并且是浮点数。 注意:Python 浮点数通常不超过 53 位的精度(与 C double 相同),任何 abs(x) >= 2**52 的浮点数 x 必然没有小数位。 | >>> math.modf(3.4) >>> math.modf(2**52+0.55) |
math.comb(n, k) | 返回从 n 个项目中选出 k 个项目的方法数,不重复且无顺序,也称为二项式系数。 当 k <= n 时,n! / (k! * (n - k)!) 当 k > n 时,为 0 | >>> math.comb(3, 2) 3 >>> math.comb(2, 3) 0 |
math.perm(n, k=None) | 返回从 n 个项目中选择 k 个项目的方法数,不重复且有顺序。 当 k <= n 时,n! / (n - k)! 当 k > n 时,为 0 当 k = None 时,k 默认为 n ,函数返回 n! | >>> math.perm(3, 2) 6 >>> math.perm(2, 3) 0 |
math.copysign(x, y) | 返回一个大小为 x 的绝对值,符号同 y 的浮点数 | >>> math.copysign(1.2, -3) -1.2 >>> math.copysign(-1, 3) 1.0 |
math.fabs(x) | 返回 x 的绝对值 | >>> math.fabs(-2) -2 |
math.factorial(x) | 返回 x 的阶乘 (int) | >>> math.factorial(4) 24 |
math.fmod(x, y) | 取余,与 x % y 可能会返回不同的结果 math.fmod(x, y) 符号同 x,x % y 符号同 y 在处理 float 时,通常首选函数 fmod(),而在处理 int 时,首选 x % y。 | >>> math.fmod(7, -2) 1.0 >>> 7 % -2 -1 |
math.remainder(x, y) | 取余(遵循 IEEE 754),若 x / y 正好位于两个连续整数的中间,则商使用最近的偶数 | >>> math.remainder(5, 2) 1.0 >>> math.remainder(7, 2) -1.0 |
math.frexp(x) | 用以获得浮点数的内部表示,返回 x 的尾数和指数 (m, e),m 为 float,e 为 int,x == m * 2**e。若 x 为 0,则返回 (0.0, 0),否则 0.5 <= abs(m) < 1 | >>> math.frexp(3.4) (0.85, 2) |
math.ldexp(x, i) | 返回 x * (2**i),本质上是函数 frexp() 的反函数 | >>> math.ldexp(0.85, 2) 3.4 |
math.fsum(iterable) | 返回可迭代对象中值的准确浮点总和,通过跟踪多个中间部分的总和来避免精度损失。 ASPN cookbook recipes for accurate floating point summation. | >>> sum([.1]*10) 0.9999999999999999 >>> math.fsum([.1]*10) 1.0 |
math.gcd(*integers) | GCD: Greatest Common Divisor 返回所有参数 (int) 的最大公约数 | >>>math.gcd(4, 6, 8) 2 |
math.lcm(*integers) | LCM: Least Common Multiple 返回所有参数 (int) 的最小公倍数 | >>>math.lcm(3, 5) 15 |
math.isclose(a, b, *, rel_tol=1e09, abs_tol=0.0) | 根据给定的 rel_tol 和 abs_tol 确定 a, b 是否接近,rel_tol 是相对容差,abs_tol 是最小绝对容差。若 abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol),返回 True | >>> math.isclose(3.4, 3.4) True |
math.isfinite(x) | 若 x 既不是无穷大也不是 NaN,则返回 True,否则返回 False | >>> math.isfinite(3.4) True |
math.isinf(x) | 若 x 是正无穷大或负无穷大,则返回 True,否则返回 False。 | >>> math.isinf(float('inf')) True |
math.isnan(x) | 若 x 是 NaN(非数),则返回 True,否则返回 False。 | >>> math.isnan(float('nan')) True |
math.isqrt(n) | ISqRt: Integer Square Root 返回非负整数 n 的整数平方根 a ,使得 a²≤n | >>> math.isqrt(5) 2 |
math.nextafter(x, y) | 返回 x 之后朝向 y 的下一个浮点值 | >>> math.nextafter(3, math.inf) 3.0000000000000004 >>> math.nextafter(3, 0.0) 2.9999999999999996 |
math.ulp(x) | ULP: Unit in the Last Place 返回浮点数 x 的最低有效位的值,这样第一个大于 x 的浮点数是 x + ulp(x)。 | >>> math.ulp(3.4) 4.440892098500626e-16 |
math.prod(iterable, *, start=1) | prod : product 返回 start 与 iterable 中各元素的乘积,若 iterable为空,则返回start | >>> math.prod((2, 3)) 6 >>> math.prod((2, 3), start=2) 12 |
math.trunc(x) | trunc : truncate 将实数 x 截断为int (通常为 int) | >>> math.trunc(3.4) 3 |
幂函数和对数函数
函数 | 描述 | 实例 |
---|---|---|
math.exp(x) | 返回 e 的 x 次幂,其中 e = 2.718281……是自然对数的底。这通常比 math.e ** x 或 pow(math.e, x) 更准确 | >>> math.exp(2) 7.38905609893065 |
math.expm1(x) | expm1: exp, minus 1 返回 e 的 x 次幂,减去 1。对于小浮点数 x,exp(x) - 1 会导致精度的显着损失;exp.m1() 函数提供了一种方法来计算到全精度 | >>> math.exp(1e-5) - 1 1.0000050000069649e-05 >>> math.expm1(1e-5) 1.0000050000166667e-05 |
math.log(x[, base]) | 返回以base为底,x 的对数,计算为 log(x)/log(base)。若未指定base,默认为e | >>> math.log(2) 0.6931471805599453 >>> math.log(2, 2) 1.0 |
math.log1p(x) | 返回 1+x(以 e 为底)的自然对数。结果的计算方式对于接近零的 x 是准确的 | >>> math.log1p(2) 1.0986122886681098 |
math.log2(x) | 返回 x 的以 2 为底的对数。这通常比 log(x, 2) 更准确 | >>> math.log2(2) 1.0 |
math.log10(x) | 返回 x 的以 10 为底的对数。这通常比 log(x, 10) 更准确 | >>> math.log10(100) 2.0 |
math.pow(x, y) | 返回 x 的 y 次幂。与内置的 ** 运算符不同,math.pow() 将其两个参数都转换为 float 类型。使用 ** 或内置的 pow() 函数计算精确的整数幂。 | >>> math.pow(2, 3) >>> pow(2, 3) |
math.sqrt((x) | 返回 x 的平方根 ( square root ) | >>> math.sqrt(4) 2.0 |
三角函数
函数 | 描述 | 实例 |
---|---|---|
math.sin(x) | sin : sine 返回 x 弧度的正弦值 | >>> math.sin(math.pi/2) 1.0 |
math.asin(x) | asin : arc sine 返回 x 的反正弦,单位:弧度。结果在 -pi/2 和 pi/2 之间 | >>> math.asin(1) 1.5707963267948966 |
math.cos(x) | cos : cosine 返回 x 弧度的余弦值 | >>> math.cos(math.pi) -1.0 |
math.acos(x) | acos : arc cosine 返回 x 的反余弦值,单位:弧度。结果在 0 和 pi 之间 | >>> math.acos(-1) 3.141592653589793 |
math.tan(x) | tan : tangent 返回 x 弧度的切线 | >>> math.tan(math.pi/4) 0.9999999999999999 |
math.atan(x) | atan : arc tangent 返回 x 的反正切,单位:弧度。结果介于 -pi/2 和 pi/2 之间。 | >>> math.atan(1) 0.7853981633974483 |
math.atan2(y, x) | 返回平面中从原点到点 (x, y) 的向量与正 X 轴形成的角度 atan(y / x),单位:弧度。结果介于 -pi 和 pi 之间。 | >>> math.atan2(1, 1) 0.7853981633974483 |
math.dist(p, q) | dist : distance 返回两点 p 和 q 之间的欧几里得距离,每个点都作为坐标序列(或可迭代)给出。这两个点必须具有相同的维度。大致相当于: sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q))) | >>> math.dist((1, 1), (2, 2)) 1.4142135623730951 |
math.hypot (*coordinates) | hypot : hypotenuse (斜边) 返回欧几里得范数,sqrt(sum(x**2 for x in coordinates))。这是从原点到坐标给定点的向量的长度。对于二维点 (x, y),这等效于使用勾股定理 sqrt(x*x + y*y) 计算直角三角形的斜边。3.8 版之前仅支持二维,之后添加了对n维点的支持。 | >>> math.hypot(1, 1) 1.4142135623730951 |
角度转换
函数 | 描述 | 实例 |
---|---|---|
math.degrees(x) | 将角度 x 从弧度转换为度数 | >>> math.degrees(math.pi) 180.0 |
math.radians(x) | 将角度 x 从度数转换为弧度 | >>> math.radians(180) 3.141592653589793 |
双曲函数
函数 | 描述 |
---|---|
math.cosh(x) | 返回 x 的双曲余弦值, h : hyperbolic |
math.acosh(x) | 返回 x 的反双曲余弦值, a: arc |
math.sinh(x) | 返回 x 的双曲正弦值 |
math.asinh(x) | 返回 x 的反双曲正弦值 |
math.tanh(x) | 返回 x 的双曲正切值 |
math.atanh(x) | 返回 x 的反双曲正切值 |
特殊函数
函数 | 描述 |
---|---|
math.erf(x) | erf : error function 返回 x 处的误差函数。可用于计算传统的统计函数,例如累积标准正态分布(cumulative standard normal distribution): def phi(x): 'Cumulative distribution function for the standard normal distribution' return (1.0 + erf(x / sqrt(2.0))) / 2.0 |
math.erfc(x) | c : complementary 返回 x 处的互补误差函数。互补误差函数定义为 1.0 - erf(x),它用于较大的 x 值(从 1 中减去会导致显着性损失)。 |
math.gamma(x) | 返回 x 处的 Gamma 函数 |
math.lgamma(x) | l : logarithm 返回 Gamma 函数在 x 处的绝对值的自然对数 |
常数
函数 | 描述 |
---|---|
math.pi | 数学常数 π = 3.141592…,达到可用精度 |
math.e | 数学常数 e = 2.718281…,达到可用精度 |
math.tau | 数学常数 τ = 6.283185…,达到可用精度。Tau 是一个圆常数,等于 2π,即圆的周长与其半径的比值。要了解有关 Tau 的更多信息,请观看 Vi Hart 的视频 Pi is (still) Wrong |
math.inf | 浮点正无穷大,相当于 float('inf') 的输出。负无穷大:-math.inf |
math.nan | 浮点“非数”(NaN) 值,相当于 float('nan') 的输出 |
这篇关于Python 3 math 库函数一览表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器