该模块始终可用。它提供对由C标准定义的数学函数的访问。
这些函数不能用于复数; cmath
如果您需要支持复数,请使用模块中的同名功能。支持复数的函数和不支持的函数之间的区别是由于大多数用户不想学习理解复数所需的太多数学。接收一个异常而不是一个复杂的结果,可以更早地检测到用作参数的意外复数,这样程序员就可以确定如何以及为什么生成它。
以下功能由该模块提供。除非另外明确指出,否则所有返回值都是浮点数。
9.2.1。数论和表示函数
math.
ceil
(x )-
返回x的最大值,x是大于或等于x的最小整数。如果x不是浮点数,则委托给它
x.__ceil__()
,这应该返回一个Integral
值。
math.
copysign
(x,y )-
返回一个浮点,其大小(绝对值)为x,但是y的符号 。在支持带符号的零的平台上, 返回-1.0。
copysign(1.0, -0.0)
math.
fabs
(x )-
返回x的绝对值。
math.
factorial
(x )-
返回x factorial。
ValueError
如果x不是整数或者是负数,则引发。
math.
floor
(x )-
返回x的最小整数,小于或等于x。如果x不是浮点数,则委托给它
x.__floor__()
,这应该返回一个Integral
值。
math.
fmod
(x,y )-
返回,由平台C库定义。请注意,Python表达式可能不会返回相同的结果。C标准的意图是完全(在数学上达到无限精度)等于某个整数n,使得结果的符号与x和幅度小于。Python的 返回结果是y的符号,并且对于float参数可能不是完全可计算的。例如,是,但Python的的结果是,它不能被精确为float表示,并且四舍五入为令人惊讶的。为此,功能
fmod(x, y)
x % y
fmod(x, y)
x - n*y
abs(y)
x % y
fmod(-1e-100, 1e100)
-1e-100
-1e-100 % 1e100
1e100-1e-100
1e100
fmod()
在使用浮点数的时候通常是首选的,而在使用整数的时候Python 是首选的。x % y
math.
frexp
(x )-
返回x的尾数和指数作为对。 m是一个浮点数,e是一个整数。如果x为零,则返回,否则返回。这用于以便携方式“分离”浮点的内部表示。
(m,e)
x == m * 2**e
(0.0, 0)
0.5 <= abs(m) < 1
math.
fsum
(可迭代)-
在迭代器中返回一个精确的浮点和值。通过跟踪多个中间部分和来避免精度损失:
>>> sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) 0.9999999999999999 >>> fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) 1.0
该算法的精度取决于IEEE-754算术保证和舍入模式为半均匀的典型情况。在一些非Windows版本中,底层的C库使用扩展的精度加法,偶尔会使中间和加倍,导致它在最低有效位关闭。
有关进一步讨论和两种替代方法,请参阅ASPN食谱配方以获得精确的浮点总和。
math.
gcd
(a,b )-
返回整数a和b的最大公约数。如果 a或b不为零,那么值是除a和b之外的最大正整数。 返回 。
gcd(a, b)
gcd(0, 0)
0
3.5版本的新功能
math.
isclose
(a,b,*,rel_tol = 1e-09,abs_tol = 0.0 )-
返回
True
如果值一和b接近对方,False
否则。根据给定的绝对公差和相对公差确定两个值是否被认为是接近的。
rel_tol是相对公差 - 它是a和b之间允许的最大差值,相对于a或b的绝对值较大。例如,要设置5%的容差,请通过
rel_tol=0.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 )-
返回
True
如果X既不是无穷大也不是NaN和False
其他。(注意0.0
被认为是有限的。)3.2版本的新功能
math.
isinf
(x )-
True
如果x是正或负无穷,则返回,False
否则返回。
math.
isnan
(x )-
返回
True
如果X为NaN(非数字),以及False
其他。
math.
ldexp
(x,i )-
回来。这实质上是功能的反面 。
x * (2**i)
frexp()
math.
modf
(x )-
返回x的小数部分和整数部分。两个结果都带有x的符号,并且是浮动的。
注意,frexp()
和modf()
具有比它们的C当量的不同调用/返回的模式:它们采取单参数和返回的一对值,而不是通过“输出参数”返回其第二返回值(有在Python没有这样的事情)。
对于ceil()
,floor()
和modf()
功能,请注意,所有的 足够大的幅度的浮点数字是准确的整数。蟒漂浮通常携带没有精度超过53位(相同于平台C双键型),在这种情况下任何浮点数X与 一定没有小数位。abs(x) >= 2**52
9.2.2。功率和对数函数
math.
exp
(x )-
回来
e**x
。
math.
expm1
(x )-
回来。对于小浮点数x,减法 可能导致精度的显着损失 ; 该 函数提供了一种以完全精确的方式计算该数量的方法:
e**x - 1
exp(x) - 1
expm1()
>>> from math import exp, expm1 >>> exp(1e-5) - 1 # gives result accurate to 11 places 1.0000050000069649e-05 >>> expm1(1e-5) # result accurate to full precision 1.0000050000166668e-05
3.2版本的新功能
math.
log
(x [,base ] )-
用一个参数,返回x的自然对数(以e为底)。
用两个参数,将x的对数返回给定的基数,计算如下
log(x)/log(base)
。
math.
log1p
(x )-
返回1 + x的自然对数(基数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”。特别是, 和总是返回,即使是零或为NaN。如果两个和是有限的, 是负的,而不是整数然后 是未定义的,并提高。pow(1.0, x)
pow(x, 0.0)
1.0
x
x
y
x
y
pow(x, y)
ValueError
与内置
**
运算符不同,math.pow()
将其参数转换为类型float
。使用**
或内置pow()
函数来计算精确的整数幂。
math.
sqrt
(x )-
返回x的平方根。
9.2.3。三角函数
math.
acos
(x )-
以弧度返回x的反余弦值。
math.
asin
(x )-
以弧度返回x的反正弦值。
math.
atan
(x )-
返回x的反正切,以弧度表示。
math.
atan2
(y,x )-
返回,以弧度。结果是在和之间。从原点到点的平面中的矢量与正X轴形成此角度。重点是两个输入的符号都是已知的,所以它可以计算角度的正确象限。例如,并且都是,但就是。
atan(y / x)
-pi
pi
(x, y)
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弧度的正切值。
9.2.4。角转换
math.
degrees
(x )-
将角度x从弧度转换为度数。
math.
radians
(x )-
将角度x从度数转换为弧度。
9.2.5。双曲函数
双曲函数 是基于双曲线而不是圆的三角函数的类比。
math.
acosh
(x )-
返回x的反双曲余弦。
math.
asinh
(x )-
返回x的反双曲正弦。
math.
atanh
(x )-
返回x的反双曲正切。
math.
cosh
(x )-
返回x的双曲余弦。
math.
sinh
(x )-
返回x的双曲正弦。
math.
tanh
(x )-
返回x的双曲正切。
9.2.6。特殊功能
math.
erf
(x )-
在x处 返回错误函数。
该
erf()
函数可以用来计算传统的统计函数,如累积的标准正态分布:DEF 披(X ): '为标准正态分布的累积分布函数' 返回 (1.0 + ERF (X / SQRT (2.0 ))) / 2.0
3.2版本的新功能
math.
gamma
(x )-
返回伽玛功能的 X。
3.2版本的新功能
math.
lgamma
(x )-
在x处返回Gamma函数绝对值的自然对数。
3.2版本的新功能
9.2.7。常量
math.
pi
-
数学常数π= 3.141592 ...,可用精度。
math.
e
-
数学常数e = 2.718281 ...,可用精度。
math.
tau
-
数学常数τ= 6.283185 ...,可用精度。Tau是一个等于2π的圆常量,即一个圆的周长与其半径之比。要了解更多关于Tau的信息,请查看Vi Hart的视频Pi(仍然)错了,开始庆祝 Tau的日子,吃两次馅饼!
3.6版本的新功能
math.
inf
-
浮点正无限。(对于负无限,使用
-math.inf
。)等于输出float('inf')
。3.5版本的新功能
math.
nan
-
浮点“不是数字”(NaN)值。相当于输出
float('nan')
。3.5版本的新功能
CPython实现细节:该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区分开来,而信号NaNs的行为仍然没有说明。典型的行为是把所有的NaN当作安静的。
来源:https://www.cnblogs.com/bruce0425/p/8322218.html