SciPy - 特殊包

特殊包中提供的函数是通用函数,遵循广播和自动数组循环。

让我们来看看一些最常用的特殊函数 −

  • 三次根函数
  • 指数函数
  • 相对误差指数函数
  • 对数和指数函数
  • 兰伯特函数
  • 排列和组合函数
  • 伽马函数

现在让我们简要了解一下这些函数。

三次根函数

这个三次根函数的语法是 – 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

Lambert 函数

此函数的语法为 – scipy.special.lambertw(x)。它也被称为 Lambert W 函数。Lambert W 函数 W(z) 定义为 w * exp(w) 的反函数。换句话说,对于任何复数 z,W(z) 的值是这样的:z = W(z) * exp(W(z))。

Lambert W 函数是一个具有无限多分支的多值函数。每个分支都给出方程 z = w exp(w) 的单独解。这里,分支由整数 k 索引。

让我们考虑以下示例。这里,Lambert 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

Gamma 函数

对于自然数"n",gamma 函数通常称为广义阶乘,因为 z*gamma(z) = gamma(z+1) 且 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.]