SciPy 教程

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/scipy-special-package.html

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, 4])
print (res)

执行上面示例代码,得到以下结果 -

[   100.  10000.]

相对误差指数函数

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

兰伯特函数

这个函数的语法是 - scipy.special.lambertw(x)。它也被称为兰伯特 W函数。兰伯特 W函数W(z)定义为w * exp(w)的反函数。换句话说,对于任何复数zW(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> NN <0k <0,则返回0

排列 - 组合函数的语法是 - scipy.special.perm(N,k)。一次取kN个东西的排列,即Nk个排列。这也被称为“部分排列”。

参考下面的一个例子。

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

上述程序将生成以下输出 -

720

伽马函数
由于z * gamma(z)= gamma(z + 1)gamma(n + 1)= n!,所以对于自然数'n',伽马函数通常被称为广义阶乘。

组合函数的语法是 - scipy.special.gamma(x)。一次取kN个东西的排列,即Nk个排列。这也被称为“部分排列”。

组合函数的语法是 - scipy.special.gamma(x)。一次取kN个东西的排列,即Nk个排列。这也被称为“部分排列”。

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

执行上面示例代码,得到以下结果 -

[inf  1.77245385  1.  24.]

Java 允许使用包(package)将类组织起来。借助于包可以方便地组织自己的代码,并将自己的代码与别人提供的代码库分开管理。使用包的主要 ...
SciPy,发音为Sigh Pi,是一个科学的 python 开源代码,在 BSD 许可下分发的库,用于执行数学,科学和工程计算。 ...
SciPy 是一个开放源码的 BSD 许可的数学,科学和工程库。SciPy 库依赖于 NumPy,它提供了便捷且快速的N维数组操作。构建 S ...
scipy.spatial包可以通过利用 Qhull 库来计算一组点的三角剖分,Voronoi 图和凸壳。此外,它包含用于最近邻点查询的 K ...
在Java中执行JAR包有多种方式,我将为您介绍其中的几种常见方式,并提供相应的步骤流程和示例代码。gradle文件中,添加对所需库的依赖坐 ...