【Python入门】Python数学math模块55个函数详解
Python math 模塊提供了許多對浮點數的數學運算函數。主要包括以下幾個部分
數論與表示函數
冪函數與對數函數
三角函數
角度轉換
雙曲函數
特殊函數
常量
?
數論與表示函數
ceil()
描述:向上取整數,返回?x?的上限,即大于或者等于?x?的最小整數
語法:math.ceil(x)
import math#需要導入數學模塊 math.ceil(5.1) 6 math.ceil(5.0) 5 math.ceil(5.8) 6?
copysign()
描述:返回一個基于?x?的絕對值和?y?的符號的浮點數。在支持帶符號零的平臺上,copysign(1.0, -0.0)?返回?-1.0.
語法:math.copysign(x,?y)
math.copysign(1,-1) -1.0math.copysign(-1,-1) -1.0math.copysign(-1,1) 1.?
fabs()
描述:返回數字的絕對值
語法:math.fabs( x )
math.fabs(-45.17) 45.17math.fabs(100) 100.0math.fabs(math.pi) 3.14159265358979?
factorial()
描述:以一個整數返回?x?的階乘。如果?x?不是整數或為負數時則將引發?ValueError。
語法:math.factorial( x )
math.factorial(5)#1*2*3*4*5 120 math.factorial(3)#1*2*3 6?
floor()
描述:返回?x?的向下取整,小于或等于?x?的最大整數。如果?x?不是浮點數,則委托?x.__floor__()?,它應返回?Integral?值。
語法:math.floor( x )
math.floor(1.2) 1 math.floor(1.99) 1?
fmod()
描述:返回余數,函數?fmod()?在使用浮點數時通常是首選,而Python的 x % y 在使用整數時是首選。
語法:math.fmod(x,?y)
math.fmod(10, 3) 1.0math.fmod(8, 3) 2.0math.fmod(8.2, 3) 2.199999999999999?
frexp()
描述:返回?x?的尾數和指數作為對``(m, e)``。?m?是一個浮點數,?e?是一個整數,正好是 x == m * 2**e 。如果?x?為零,則返回?(0.0, 0)?,否則返回?0.5 <= abs(m)?< 1 。這用于以可移植方式“分離”浮點數的內部表示。
語法:math.frexp(x)
math.frexp(32) (0.5, 6)?
fsum()
描述:對迭代器里的每個元素進行求和操作,返回迭代中的精確浮點值。通過跟蹤多個中間部分和來避免精度損失
語法:math.fsum( x )
math.fsum((1,2,3,4)) 10.0math.fsum([1,2,3,4]) 10.0sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) 0.9999999999999999math.fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) 1?
gcd()
描述:返回整數?a?和?b?的最大公約數。如果?a?或?b?之一非零,則?gcd(a,?b)?的值是能同時整除?a?和?b?的最大正整數。gcd(0, 0)?返回?0。
語法:math.gcd( x,y)
math.gcd(12,6) 6 math.gcd(15,25) 5?
isclose()
描述:若?a?和?b?的值比較接近則返回 True,否則返回 False。根據給定的絕對和相對容差確定兩個值是否被認為是接近的。
語法:math.isclose(a,?b,?*,?rel_tol=1e-09,?abs_tol=0.0)
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 只被認為接近自己。
math.isclose(1.0,1.0000000000001) Truemath.isclose(1.0,1.000000001) False?
isfinite()
描述:如果?x?既不是無窮大也不是NaN,則返回 True ,否則返回 False 。(注意?0.0?被認為?是?有限的。)
語法:math.isfinite(x)
math.isfinite(2) True math.isfinite(math.nan) False math.isfinite(math.inf) False?
isinf()
描述:如果?x?是正或負無窮大,則返回 True ,否則返回 False 。
語法:math.isinf()
math.isinf(math.inf) True math.isinf(-math.inf) True?
isnan()
描述:如果?x?是 NaN(不是數字),則返回 True ,否則返回 False 。
語法:math.isnan(x)
math.isnan(math.nan) True?
ldexp()
描述:返回 x *?(2**i)?。這基本上是函數?frexp()?的反函數。
語法:math.ldexp(x,?i)
math.ldexp(5, 3) 40.05 * (2**3) 40?
modf()
描述:返回?x?的小數和整數部分。兩個結果都帶有?x?的符號并且是浮點數。
語法:math.modf(x)
math.modf(3.71828) (0.71828, 3.0)?
remainder()
描述:返回 IEEE 754 風格的?x?相對于?y?的余數
語法:math.remainder(x,?y)
math.remainder(14, 5) -1.0math.remainder(13, 5) -2.0math.remainder(12, 5) 2.0math.remainder(11, 5) 1?
trunc()
描述:返回?Real?值?x?截斷為?Integral?(通常是整數)
語法:math.trunc(x)
math.trunc(3.718281828459045) 3?
?
冪函數與對數函數
exp()
描述:返回?e?次?x?冪,其中?e?= 2.718281... 是自然對數的基數。這通常比 math.e ** x 或 pow(math.e, x)?更精確。
語法:math.exp( x )
注意:exp()是不能直接訪問的,需要導入 math 模塊,通過靜態對象調用該方法。
math.exp(1) 2.718281828459045math.exp(0) 1.0math.exp(3) 20.08553692318766?
expm1()
描述:返回?e?的?x?次冪,減1。這里?e?是自然對數的基數。對于小浮點數?x?,?exp(x)?-?1?中的減法可能導致?significant loss of precision;?expm1()?函數提供了一種將此數量計算為全精度的方法
語法:math.expm1(x)
math.exp(1e-5) - 1 1.0000050000069649e-05math.expm1(1e-5) 1.0000050000166667e-05math.expm1(1) 1.718281828459045 math.expm1(2) 6.3890560989306?
log()
描述:使用一個參數,返回?x?的自然對數(底為?e?)。
語法:math.log(x[,base])
參數:
x -- 數值表達式。
base -- 可選,底數,默認為 e。
?
log1p()
描述:返回?1+x?(base?e) 的自然對數。以對于接近零的?x?精確的方式計算結果。
語法:math.log1p(x)
math.log1p(1) 0.6931471805599453?
log2()
描述:返回?x?以2為底的對數。這通常比 log(x, 2)?更準確。
語法:math.log2(x)
math.log2(8) 3.0?
log10()
描述:返回?x?底為10的對數。這通常比 log(x, 10)?更準確。
語法:math.log10( x )
math.log10(100) 2.0 math.log10(1000) 3.0?
pow()
描述:返回 (x的y次方) 的值。與內置的?**?運算符不同,?math.pow()?將其參數轉換為?float?類型。使用?**?或內置的?pow()?函數來計算精確的整數冪。
語法:math.pow( x, y )
math.pow( 2, 4 ) 16.0 math.pow( 10, 2 ) 100.0?
sqrt()
描述:返回數字x的平方根。
語法:math.sqrt( x )
math.sqrt(4) 2.0math.sqrt(100) 10.0math.sqrt(7) 2.6457513110645907math.sqrt(math.pi) 1.77245385090551?
?
三角函數
acos()
描述:以弧度為單位返回?x?的反余弦值。
語法:math.acos(x)
math.acos(.5) 1.0471975511965979?
asin()
描述:以弧度為單位返回?x?的反正弦值。
語法:math.asin(x)
math.asin(.5) 0.5235987755982989?
atan()
描述:以弧度為單位返回?x?的反正切值。
語法:math.atan(x)
math.atan(1) 0.7853981633974483?
atan2()
描述:以弧度為單位返回 atan(y / x)?。結果是在?-pi 和 pi 之間。從原點到點?(x, y)?的平面矢量使該角度與正X軸成正比。?atan2()?的點的兩個輸入的符號都是已知的,因此它可以計算角度的正確象限。例如, atan(1)?和 atan2(1, 1)?都是 pi/4 ,但 atan2(-1, -1)?是?-3*pi/4 。
語法:math.atan2(y,?x)
math.atan2(1, 1) 0.7853981633974483math.pi/4 0.7853981633974483?
cos()
描述:返回?x?弧度的余弦值。
語法:math.cos(x)
math.cos(math.pi/6) 0.8660254037844387hypot()
描述:返回歐幾里德范數, sqrt(x*x + y*y)?。這是從原點到點?(x, y)?的向量長度。
語法:math.hypot(x,?y)
math.hypot(1, 1) 1.4142135623730951?
sin()
描述:返回?x?弧度的正弦值。
語法:math.sin(x)
math.sin(math.pi/6) 0.49999999999999994?
tan()
描述:返回?x?弧度的正切值。
語法:math.tan(x)
math.tan(math.pi/4) 0.9999999999999999?
?
角度轉換
degrees()
描述:將角度?x?從弧度轉換為度數。
語法:math.degrees(x)
math.degrees(math.pi) 180.0math.degrees(3) 171.88733853924697?
radians()
描述:將角度?x?從度數轉換為弧度。
語法:math.radians(x)
math.radians(180) 3.141592653589793?
雙曲函數
雙曲函數?是基于雙曲線而非圓來對三角函數進行模擬。
? ? ? ? ? ? ?
acosh()
描述:返回?x?的反雙曲余弦值。
語法:math.acosh(x)
math.acosh(3) 1.762747174039086asinh()
描述:返回?x?的反雙曲正弦值。
語法:math.asinh(x)
math.asinh(1) 0.8813735870195429?
atanh()
描述:返回?x?的反雙曲正切值。
語法:math.atanh(x)
math.atanh(0.5) 0.5493061443340549?
cosh()
描述:返回?x?的雙曲余弦值。
語法:math.cosh(x)
math.cosh(2) 3.7621956910836314?
sinh()
描述:返回?x?的雙曲正弦值。
語法:math.sinh(x)
math.sinh(1) 1.1752011936438014?
tanh()
描述:返回?x?的雙曲正切值。
語法:math.tanh(x)
math.tanh(3) 0.9950547536867305?
特殊函數
erf()
描述:返回?x?處的?error function?。
語法:math.erf(x)
math.erf(1) 0.8427007929497149erf() 函數可用于計算傳統的統計函數,如 累積標準正態分布 def phi(x): return (1.0 + erf(x / sqrt(2.0))) / 2.0?
erfc()
描述:返回?x?處的互補誤差函數。?互補錯誤函數?定義為 1.0?- erf(x)。它用于?x?的大值,從其中減去一個會導致?有效位數損失。
語法:math.erfc(x)
math.erfc(1) 0.1572992070502851?
gamma()
描述:返回?x?處的?伽馬函數?值。
語法:math.gamma(x)
math.gamma(4) 6.0?
lgamma()
描述:返回Gamma函數在?x?絕對值的自然對數。
語法:math.lgamma(x)
math.lgamma(4) 1.7917594692280554?
?
常 ? ?量
pi
描述:圓周率。數學常數?π?= 3.141592...,精確到可用精度。
語法:math.pi
math.pi 3.141592653589793?
e
描述:數學常數?e?= 2.718281...,精確到可用精度。
語法:math. e
math.e 2.718281828459045?
tau
描述:數學常數?τ?= 6.283185...,精確到可用精度。Tau 是一個圓周常數,等于 2π,圓的周長與半徑之比
語法:math.tau
math.tau 6.283185307179586?
inf
描述:浮點正無窮大。(對于負無窮大,使用?-math.inf 。)相當于``float('inf')`` 的輸出。
語法:math.inf
math.inf inf?
nan
描述:浮點“非數字”(NaN)值。相當于 float('nan')?的輸出。
語法:math.nan
math.nan nan?
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯AI基礎下載(pdf更新到25集)機器學習的數學基礎專輯本站qq群1003271085,加入微信群請回復“加群”獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/yFQV7am喜歡文章,點個在看總結
以上是生活随笔為你收集整理的【Python入门】Python数学math模块55个函数详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【本站作品】机器学习数学基础专辑
- 下一篇: 【Python入门】Python字典的1