- SciPy 教程
- SciPy - 首頁
- SciPy - 簡介
- SciPy - 環境設定
- SciPy - 基本功能
- SciPy - 叢集
- SciPy - 常量
- SciPy - FFTpack
- SciPy - 積分
- SciPy - 插值
- SciPy - 輸入和輸出
- SciPy - 線性代數 (Linalg)
- SciPy - N維影像處理 (Ndimage)
- SciPy - 最佳化
- SciPy - 統計
- SciPy - 壓縮稀疏圖 (CSGraph)
- SciPy - 空間
- SciPy - 正交距離迴歸 (ODR)
- SciPy - 特殊函式包
- SciPy 有用資源
- SciPy - 參考
- SciPy - 快速指南
- SciPy - 有用資源
- SciPy - 討論
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.]