Python數學math模組55個函式詳解
文章推薦指數: 80 %
描述: 返回 x 處的 error function 。
語法:math.erf(x). math.erf(1). 0.8427007929497149.
MdEditor
Python數學math模組55個函式詳解
語言:CN/TW/HK
時間 2020-05-1717:35:37
簡說Python
主題:
Python
數學
文章來源:
AI入門學習
作者:
小伍哥
Pythonmath模組提供了許多對浮點數的數學運算函式。
主要包括以下幾個部分
數論與表示函式
冪函式與對數函式
三角函式
角度轉換
雙曲函式
特殊函式
常量
importmathprint(dir(math))['acos','acosh','asin','asinh','atan','atan2','atanh','ceil','copysign','cos','cosh','degrees','e','erf','erfc','exp','expm1','fabs','factorial','floor','fmod','frexp','fsum','gamma','gcd','hypot','inf','isclose','isfinite','isinf','isnan','ldexp','lgamma','log','log10','log1p','log2','modf','nan','pi','pow','radians','remainder','sin','sinh','sqrt','tan','tanh','tau','trunc']
注意:上面的函式是不能直接訪問的,需要匯入math模組,通過靜態物件呼叫該方法。
數論與表示函式
ceil()
描述:向上取整數,返回 x
的上限,即大於或者等於 x
的最小整數
語法:math.ceil(x)
importmath#需要匯入數學模組math.ceil(5.1)6math.ceil(5.0)5math.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*5120math.factorial(3)#1*2*36
floor()
描述:
返回 x
的向下取整,小於或等於 x
的最大整數。
如果 x
不是浮點數,則委託 x.__floor__() ,它應返回
Integral
值。
語法:math
.
floor
(
x
)
math.floor(1.2)1math.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)6math.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) 。
IEEE754特殊值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)Truemath.isfinite(math.nan)Falsemath.isfinite(math.inf)False
isinf()
描述:如果 x
是正或負無窮大,則返回True,否則返回False。
語法:math.isinf()
math.isinf(math.inf)Truemath.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()
描述:返回IEEE754風格的 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 中的減法可能導致
significantlossofprecision
;
expm1()
函式提供了一種將此數量計算為全精度的方法
語法:math.expm1(x)
math.exp(1e-5)-11.0000050000069649e-05math.expm1(1e-5)1.0000050000166667e-05math.expm1(1)1.718281828459045math.expm1(2)6.3890560989306
log()
描述:使用一個引數,返回 x
的自然對數(底為 e
)。
語法:math
.
log
(
x
[,
base
])
引數:
x--數值表示式。
base--可選,底數,預設為e。
math.log(math.e)1.0math.log(20)2.995732273553991math.log(100,10)#返回以10為底的對數2.
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.0math.log10(1000)3.0
pow()
描述:
返回(x的y次方)的值。
與內建的 ** 運算子不同,
math.pow()
將其引數轉換為
float
型別。
使用 ** 或內建的
pow()
函式來計算精確的整數冪。
語法:math
.
pow
(
x
,
y
)
math.pow(2,4)16.0math.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/40.7853981633974483
cos()
描述:返回 x
弧度的餘弦值。
語法:math.cos(x)
math.cos(math.pi/6)0.8660254037844387
hypot()
描述:返回歐幾里德範數,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.762747174039086
asinh()
描述:返回 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
處的
errorfunction
。
語法:math.erf(x)
math.erf(1)0.8427007929497149erf()函式可用於計算傳統的統計函式,如累積標準正態分佈defphi(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.pi3.141592653589793
e
描述:數學常數 e
=2.718281...,精確到可用精度。
語法:math.e
math.e2.718281828459045
tau
描述:數學常數 τ
=6.283185...,精確到可用精度。
Tau是一個圓周常數,等於2π
,圓的周長與半徑之比
語法:math.tau
math.tau6.283185307179586
inf
描述:浮點正無窮大。
(對於負無窮大,使用 -math.inf。
)相當於``float('inf')``的輸出。
語法:math.inf
math.infinf
nan
描述:浮點“非數字”(NaN)值。
相當於float('nan') 的輸出。
語法:math.nan
math.nannan
如果你覺得文章不錯的話,分享、收藏、在看、留言666是對老表的最大支援。
老表Pro已經滿了
所以大家加老表Max吧
每日
留言
說說你最近遇到的一個程式設計問題
?
或者新學的一個小技巧?
(字數不少於15字)
留言
贈書
完整Python基礎知識要點
Python小知識 | 這些技能你不會?(一)
Python小知識 | 這些技能你不會?(二)
Python小知識 | 這些技能你不會?(三)
Python小知識 | 這些技能你不會?(四)
近期推薦閱讀:
【1】整理了我開始分享學習筆記到現在超過250篇優質文章,涵蓋資料分析、爬蟲、機器學習等方面,別再說不知道該從哪開始,實戰哪裡找了
【2】【終篇】Pandas中文官方文件:基礎用法6(含1-5)
好文章,我
在看
:heart:
「其他文章」
用Pandas分析了75w多條資料,揭祕美國選民的總統喜好
PythonSQL萬字案例:使用者行為資料分析實戰!
如何用Python分析資料?
用Python擼一個Web伺服器-第4章:動態渲染資料
一道快手的演算法面試題,沒想到對數學要求還蠻高的!
一款高顏值的詞雲包讓我拍案叫絕
一道簡簡單單的位元組跳動演算法面試題
帶你學MySQL系列|碰到奇怪的null值,該怎麼辦呢?看看我的總結!
GitHub標星20K:WhatthefuckPython?!
Python快速搭建HTTP服務
用python悄悄記錄了室友的抖音線上時間
NumPy進階修煉|矩陣操作20題
5年Python功力,總結了10個開發技巧
使用者活躍、留存、流失,終於講清楚了!
Python爬蟲之requestbeautifulsoupmysql
Linux|如何重複執行一條命令直至執行成功?
Python之MySQL實戰
難倒80%資料分析師的面試題!看
一日一技:Sql的執行順序是怎樣的?
Python數學math模組55個函式詳解
「Python」
Python視覺化|Python視覺化進階必備-plotly
手把手教你擼一個Web匯率計算器
一文教會你如何用Python分割合併大檔案
【資料結構實踐】從0到1帶你利用Python實現自定義集合
解決NGINXLDAP參考實施中的安全問題
SCA在得物DevSecOps平臺上應用
Python自學教程3-英語不好,變數怎麼命名
Python自學教程2:大牛們怎麼寫註釋
如何通過puppetter實現PDF聚合閱讀器初始模型以及產品思維構想
12個Python自動化辦公的官方文件,中文版只有2個?
「數學」
DAO的社會政治史:從Cypherpunks到Web3
卷積神經網路數學原理解析
x²-dy²=-1有多少整數解?近30年無人解開的數學難題有答案了
壓縮ViT模型的新解法!微軟提出蒸餾變換的權重複用壓縮方法MiniViT
躲不開資訊操縱,是人類的大腦過時了嗎?
從「利奧塔」窺見加密敘事
2022年狄拉克獎揭曉!他們為理解物理系統提供數學工具
PNAS最新研究:81%解題率,神經網路Codex推開高等數學世界大門
北大教授:奧數優勝者為什麼不一定能成為數學家?
鄂維南院士:AIforScience,一場發生在當下的科技革命
延伸文章資訊
- 15 函數· Python 資料科學入門 - Yao-Jen Kuo
其實我們已經開始使用函數了,例如我們請Python 回傳資料類型的 type() 或者產生 ... import math # 要使用圓周率pi 得引入套件math def circle_are...
- 2Python的math模組中的常用數學函式整理 - 程式前沿
在互動模式下輸入上面的指令,然後回車,看到下面的資訊: Help on built-in function pow in module math: pow ...
- 3Python math 模块 - 菜鸟教程
Python math 模块Python math 模块提供了许多对浮点数的数学运算函数。 math 模块下的函数,返回值均为浮点数,除非另有明确说明。 如果你需要计算复数,请使用cmath ...
- 4Python 数学模块(Math) - 菜鸟教程
了解Python中可用的所有数学函数以及如何在程序中使用它们。Python中的数学模块是什么?math 模块是Python中的标准模块,并且始终可用。要在此模块下使用数学函数, ...
- 5Python/基礎數學- 維基教科書,自由的教學讀本 - Wikibooks
< Python. Python使用與C、Java類似的運算符,支持整數與浮點數的數學運算。 ... 除了求絕對值函數 abs() 外,大多數數學函數處於 math 和 cmath 模塊內。