SciPy - 特殊函式包



特殊函式包中的函式是通用函式,遵循廣播和自動陣列迴圈。

讓我們來看一些最常用的特殊函式:

  • 立方根函式
  • 指數函式
  • 相對誤差指數函式
  • 對數和指數函式
  • 蘭伯特W函式
  • 排列和組合函式
  • 伽馬函式

現在讓我們簡要了解一下這些函式。

立方根函式

此立方根函式的語法為:scipy.special.cbrt(x)。這將獲取x 的逐元素立方根。

讓我們考慮以下示例。

from scipy.special import cbrt
res = cbrt([10, 9, 0.1254, 234])
print res

上述程式將生成以下輸出。

[ 2.15443469 2.08008382 0.50053277 6.16224015]

指數函式

指數函式的語法為:scipy.special.exp10(x)。這將計算 10**x 的逐元素結果。

讓我們考慮以下示例。

from scipy.special import exp10
res = exp10([2, 9])
print res

上述程式將生成以下輸出。

[1.00000000e+02  1.00000000e+09]

相對誤差指數函式

此函式的語法為:scipy.special.exprel(x)。它生成相對誤差指數 (exp(x) - 1)/x。

x 接近零時,exp(x) 接近 1,因此 exp(x) - 1 的數值計算可能會遭受災難性的精度損失。然後實現 exprel(x) 以避免當x 接近零時發生的精度損失。

讓我們考慮以下示例。

from scipy.special import exprel
res = exprel([-0.25, -0.1, 0, 0.1, 0.25])
print res

上述程式將生成以下輸出。

[0.88479687 0.95162582 1.   1.05170918 1.13610167]

對數和指數函式

此函式的語法為:scipy.special.logsumexp(x)。它有助於計算輸入元素指數和的對數。

讓我們考慮以下示例。

from scipy.special import logsumexp
import numpy as np
a = np.arange(10)
res = logsumexp(a)
print res

上述程式將生成以下輸出。

9.45862974443

蘭伯特W函式

此函式的語法為:scipy.special.lambertw(x)。它也稱為蘭伯特 W 函式。蘭伯特 W 函式 W(z) 定義為 w * exp(w) 的反函式。換句話說,W(z) 的值使得對於任何複數 z,z = W(z) * exp(W(z))。

蘭伯特 W 函式是一個多值函式,具有無限多個分支。每個分支給出了方程 z = w exp(w) 的一個單獨解。這裡,分支由整數 k 索引。

讓我們考慮以下示例。這裡,蘭伯特 W 函式是 w exp(w) 的反函式。

from scipy.special import lambertw
w = lambertw(1)
print w
print w * np.exp(w)

上述程式將生成以下輸出。

(0.56714329041+0j)
(1+0j)

排列與組合

讓我們分別討論排列和組合以更清晰地理解它們。

組合 - 組合函式的語法為:scipy.special.comb(N,k)。讓我們考慮以下示例:

from scipy.special import comb
res = comb(10, 3, exact = False,repetition=True)
print res

上述程式將生成以下輸出。

220.0

注意 - 僅當 exact = False 時才接受陣列引數。如果 k > N,N < 0 或 k < 0,則返回 0。

排列 - 組合函式的語法為:scipy.special.perm(N,k)。從 N 個事物中取 k 個的排列,即 N 的 k-排列。這也被稱為“部分排列”。

讓我們考慮以下示例。

from scipy.special import perm
res = perm(10, 3, exact = True)
print res

上述程式將生成以下輸出。

720

伽馬函式

伽馬函式通常被稱為廣義階乘,因為 z*gamma(z) = gamma(z+1) 並且對於自然數“n”,gamma(n+1) = n!。

組合函式的語法為:scipy.special.gamma(x)。從 N 個事物中取 k 個的排列,即 N 的 k-排列。這也被稱為“部分排列”。

組合函式的語法為:scipy.special.gamma(x)。從 N 個事物中取 k 個的排列,即 N 的 k-排列。這也被稱為“部分排列”。

from scipy.special import gamma
res = gamma([0, 0.5, 1, 5])
print res

上述程式將生成以下輸出。

[inf  1.77245385  1.  24.]
廣告
© . All rights reserved.