网络规划设计师备考,上饶seo博客,ie 常用网站,电子商务网站建设的方法math --- 数学函数 该模块提供了对C标准定义的数学函数的访问。
这些函数不适用于复数#xff1b;如果你需要计算复数#xff0c;请使用 cmath 模块中的同名函数。将支持计算复数的函数区分开的目的#xff0c;来自于大多数开发者并不愿意像数学家一样需要学习复数的概念。…math --- 数学函数¶ 该模块提供了对C标准定义的数学函数的访问。
这些函数不适用于复数如果你需要计算复数请使用 cmath 模块中的同名函数。将支持计算复数的函数区分开的目的来自于大多数开发者并不愿意像数学家一样需要学习复数的概念。得到一个异常而不是一个复数结果使得开发者能够更早地监测到传递给这些函数的参数中包含复数进而调查其产生的原因。
该模块提供了以下函数。除非另有明确说明否则所有返回值均为浮点数。
数论与表示函数
math.ceil(x)
返回 x 的上限即大于或者等于 x 的最小整数。如果 x 不是一个浮点数则委托 x.__ceil__(), 返回一个 Integral 类的值。
math.copysign(x, y)
返回一个基于 x 的绝对值和 y 的符号的浮点数。在支持带符号零的平台上copysign(1.0, -0.0) 返回 -1.0.
math.fabs(x)
返回 x 的绝对值。
math.factorial(x)
以一个整数返回 x 的阶乘。 如果 x 不是整数或为负数时则将引发 ValueError。
math.floor(x)
返回 x 的向下取整小于或等于 x 的最大整数。如果 x 不是浮点数则委托 x.__floor__() 它应返回 Integral 值。
math.fmod(x, y)
返回 fmod(x, y) 由平台C库定义。请注意Python表达式 x % y 可能不会返回相同的结果。C标准的目的是 fmod(x, y) 完全数学上到无限精度等于 x - n*y 对于某个整数 n 使得结果具有 与 x 相同的符号和小于 abs(y) 的幅度。Python的 x % y 返回带有 y 符号的结果并且可能不能完全计算浮点参数。 例如 fmod(-1e-100, 1e100) 是 -1e-100 但Python的 -1e-100 % 1e100 的结果是 1e100-1e-100 它不能完全表示为浮点数并且取整为令人惊讶的 1e100 。 出于这个原因函数 fmod() 在使用浮点数时通常是首选而Python的 x % y 在使用整数时是首选。
math.frexp(x)
以 (m, e) 对的形式返回 x 的尾数和指数。 m 是一个浮点数 e 是一个整数正好是 x m * 2**e 。 如果 x 为零则返回 (0.0, 0) 否则返回 0.5 abs(m) 1 。这用于以可移植方式“分离”浮点数的内部表示。
math.fsum(iterable)
返回迭代中的精确浮点值。通过跟踪多个中间部分和来避免精度损失: sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
0.9999999999999999fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
1.0该算法的准确性取决于IEEE-754算术保证和舍入模式为半偶的典型情况。在某些非Windows版本中底层C库使用扩展精度添加并且有时可能会使中间和加倍导致它在最低有效位中关闭。
有关待进一步讨论和两种替代方法参见 ASPN cookbook recipes for accurate floating point summation。
math.gcd(a, b)
返回整数 a 和 b 的最大公约数。如果 a 或 b 之一非零则 gcd(a, b) 的值是能同时整除 a 和 b 的最大正整数。gcd(0, 0) 返回 0。
3.5 新版功能.
math.isclose(a, b, *, rel_tol1e-09, abs_tol0.0)
若 a 和 b 的值比较接近则返回 True否则返回 False。
根据给定的绝对和相对容差确定两个值是否被认为是接近的。
rel_tol 是相对容差 —— 它是 a 和 b 之间允许的最大差值相对于 a 或 b 的较大绝对值。例如要设置5的容差请传递 rel_tol0.05 。默认容差为 1e-09确保两个值在大约9位十进制数字内相同。 rel_tol 必须大于零。
abs_tol 是最小绝对容差 —— 对于接近零的比较很有用。 abs_tol 必须至少为零。
如果没有错误发生结果将是 abs(a-b) max(rel_tol * max(abs(a), abs(b)), abs_tol) 。
IEEE 754特殊值 NaN inf 和 -inf 将根据IEEE规则处理。具体来说 NaN 不被认为接近任何其他值包括 NaN 。 inf 和 -inf 只被认为接近自己。
3.5 新版功能.
参见 PEP 485 —— 用于测试近似相等的函数
math.isfinite(x)
如果 x 既不是无穷大也不是NaN则返回 True 否则返回 False 。 注意 0.0 被认为 是 有限的。
3.2 新版功能.
math.isinf(x)
如果 x 是正或负无穷大则返回 True 否则返回 False 。
math.isnan(x)
如果 x 是 NaN不是数字则返回 True 否则返回 False 。
math.ldexp(x, i)
返回 x * (2**i) 。 这基本上是函数 frexp() 的反函数。
math.modf(x)
返回 x 的小数和整数部分。两个结果都带有 x 的符号并且是浮点数。
math.remainder(x, y)
返回 IEEE 754 风格的 x 相对于 y 的余数。对于有限 x 和有限非零 y 这是差异 x - n*y 其中 n 是与商 x / y 的精确值最接近的整数。如果 x / y 恰好位于两个连续整数之间则将最接近的 偶数 用作 n 。 余数 r remainder(x, y) 因此总是满足 abs(r) 0.5 * abs(y)。
特殊情况遵循IEEE 754特别是 remainder(x, math.inf) 对于任何有限 x 都是 x 而 remainder(x, 0) 和 remainder(math.inf, x) 引发 ValueError 适用于任何非NaN的 x 。如果余数运算的结果为零则该零将具有与 x 相同的符号。
在使用IEEE 754二进制浮点的平台上此操作的结果始终可以完全表示不会引入舍入错误。
3.7 新版功能.
math.trunc(x)
返回 Real 值 x 截断为 Integral 通常是整数。 委托给 x.__trunc__()。
注意 frexp() 和 modf() 具有与它们的C等价函数不同的调用/返回模式它们采用单个参数并返回一对值而不是通过 输出形参 返回它们的第二个返回参数Python中没有这样的东西。
对于 ceil() floor() 和 modf() 函数请注意 所有 足够大的浮点数都是精确整数。Python浮点数通常不超过53位的精度与平台C double类型相同在这种情况下任何浮点 x 与 abs(x) 2**52 必然没有小数位。
幂函数与对数函数
math.exp(x)
返回 e 次 x 幂其中 e 2.718281... 是自然对数的基数。这通常比 math.e ** x 或 pow(math.e, x) 更精确。
math.expm1(x)
返回 e 的 x 次幂减1。这里 e 是自然对数的基数。对于小浮点数 x exp(x) - 1 中的减法可能导致 significant loss of precision expm1() 函数提供了一种将此数量计算为全精度的方法: from math import exp, expm1exp(1e-5) - 1 # gives result accurate to 11 places
1.0000050000069649e-05expm1(1e-5) # result accurate to full precision
1.0000050000166668e-053.2 新版功能.
math.log(x[, base])
使用一个参数返回 x 的自然对数底为 e 。
使用两个参数返回给定的 base 的对数 x 计算为 log(x)/log(base) 。
math.log1p(x)
返回 1x 的自然对数以 e 为底。 以对于接近零的 x 精确的方式计算结果。
math.log2(x)
返回 x 以2为底的对数。这通常比 log(x, 2) 更准确。
3.3 新版功能.
参见 int.bit_length() 返回表示二进制整数所需的位数不包括符号和前导零。
math.log10(x)
返回 x 底为10的对数。这通常比 log(x, 10) 更准确。
math.pow(x, y)
将返回 x 的 y 次幂。特殊情况尽可能遵循C99标准的附录F。特别是 pow(1.0, x) 和 pow(x, 0.0) 总是返回 1.0 即使 x 是零或NaN。 如果 x 和 y 都是有限的 x 是负数 y 不是整数那么 pow(x, y) 是未定义的并且引发 ValueError 。
与内置的 ** 运算符不同 math.pow() 将其参数转换为 float 类型。使用 ** 或内置的 pow() 函数来计算精确的整数幂。
math.sqrt(x)
返回 x 的平方根。
三角函数
math.acos(x)
以弧度为单位返回 x 的反余弦值。
math.asin(x)
以弧度为单位返回 x 的反正弦值。
math.atan(x)
以弧度为单位返回 x 的反正切值。
math.atan2(y, x)
以弧度为单位返回 atan(y / x) 。结果是在 -pi 和 pi 之间。从原点到点 (x, y) 的平面矢量使该角度与正X轴成正比。 atan2() 的点的两个输入的符号都是已知的因此它可以计算角度的正确象限。 例如 atan(1) 和 atan2(1, 1) 都是 pi/4 但 atan2(-1, -1) 是 -3*pi/4 。
math.cos(x)
返回 x 弧度的余弦值。
math.hypot(x, y)
返回欧几里德范数 sqrt(x*x y*y) 。 这是从原点到点 (x, y) 的向量长度。
math.sin(x)
返回 x 弧度的正弦值。
math.tan(x)
返回 x 弧度的正切值。
角度转换
math.degrees(x)
将角度 x 从弧度转换为度数。
math.radians(x)
将角度 x 从度数转换为弧度。
双曲函数
双曲函数 是基于双曲线而非圆来对三角函数进行模拟。
math.acosh(x)
返回 x 的反双曲余弦值。
math.asinh(x)
返回 x 的反双曲正弦值。
math.atanh(x)
返回 x 的反双曲正切值。
math.cosh(x)
返回 x 的双曲余弦值。
math.sinh(x)
返回 x 的双曲正弦值。
math.tanh(x)
返回 x 的双曲正切值。
特殊函数
math.erf(x)
返回 x 处的 error function 。
erf() 函数可用于计算传统的统计函数如 累积标准正态分布
def phi(x):Cumulative distribution function for the standard normal distributionreturn (1.0 erf(x / sqrt(2.0))) / 2.03.2 新版功能.
math.erfc(x)
返回 x 处的互补误差函数。 互补错误函数 定义为 1.0 - erf(x)。 它用于 x 的大值从其中减去一个会导致 有效位数损失。
3.2 新版功能.
math.gamma(x)
返回 x 处的 伽马函数 值。
3.2 新版功能.
math.lgamma(x)
返回Gamma函数在 x 绝对值的自然对数。
3.2 新版功能.
常量
math.pi
数学常数 π 3.141592...精确到可用精度。
math.e
数学常数 e 2.718281...精确到可用精度。
math.tau
数学常数 τ 6.283185...精确到可用精度。Tau 是一个圆周常数等于 2π圆的周长与半径之比。更多关于 Tau 的信息可参考 Vi Hart 的视频 Pi is (still) Wrong。吃两倍多的派来庆祝 Tau 日 吧
3.6 新版功能.
math.inf
浮点正无穷大。 对于负无穷大使用 -math.inf 。相当于float(inf) 的输出。
3.5 新版功能.
math.nan
浮点“非数字”NaN值。 相当于 float(nan) 的输出。
3.5 新版功能.
CPython implementation detail: math 模块主要包含围绕平台C数学库函数的简单包装器。特殊情况下的行为在适当情况下遵循C99标准的附录F。当前的实现将引发 ValueError 用于无效操作如 sqrt(-1.0) 或 log(0.0) 其中C99附件F建议发出无效操作信号或被零除 和 OverflowError 用于溢出的结果例如 exp(1000.0) 。除非一个或多个输入参数是NaN否则不会从上述任何函数返回NaN在这种情况下大多数函数将返回一个NaN但是再次遵循C99附件F这个规则有一些例外例如 pow(float(nan), 0.0) 或 hypot(float(nan), float(inf)) 。
请注意Python不会将显式NaN与静默NaN区分开来并且显式NaN的行为仍未明确。典型的行为是将所有NaN视为静默的。