- 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.]