Scipy教程

Scipy特殊包

Scipy特殊包详细操作教程
特殊包中可用的功能是通用功能,它遵循广播和自动数组循环。
下面来看看一些最常用的特殊函数功能 -
立方根函数 指数函数 相对误差指数函数 对数和指数函数 兰伯特函数 排列和组合函数 伽马函数
下面来简单地了解这些函数。
立方根函数
这个立方根函数的语法是 - scipy.special.cbrt(x)。 这将获取x的基于元素的立方体根。
参考下面的一个例子 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
from scipy.special import cbrt
res = cbrt([10, 9, 0.1254, 234])
print (res)
执行上面示例代码,得到以下结果 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
[ 2.15443469 2.08008382 0.50053277 6.16224015]
指数函数
指数函数的语法是 - scipy.special.exp10(x)。 这将计算10 ** x的值。
参考下面的一个例子 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
from scipy.special import exp10
res = exp10([2, 4])
print (res)
执行上面示例代码,得到以下结果 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
[ 100. 10000.]
相对误差指数函数
这个函数的语法是 - scipy.special.exprel(x)。 它生成相对误差指数,(exp(x) - 1/x。
当x接近零时,exp(x)接近1,所以exp(x)-1的数值计算可能遭受灾难性的精度损失。 然后exprel(x)被实现以避免精度的损失,这在x接近于零时发生。
参考下面的一个例子。
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
from scipy.special import exprel
res = exprel([-0.25, -0.1, 0, 0.1, 0.25])
print (res)
执行上面示例代码,得到以下结果 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
[0.88479687 0.95162582 1. 1.05170918 1.13610167]
对数和指数函数
这个函数的语法是 - scipy.special.logsumexp(x)。 它有助于计算输入元素指数总和的对数。
参考下面的一个例子 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
from scipy.special import logsumexp
import numpy as np
a = np.arange(10)
res = logsumexp(a)
print (res)
执行上面示例代码,得到以下结果 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
9.45862974443
兰伯特函数
这个函数的语法是 - scipy.special.lambertw(x)。 它也被称为兰伯特W函数。 兰伯特W函数W(z)定义为w * exp(w)的反函数。 换句话说,对于任何复数z,W(z)的值都是z = W(z)* exp(W(z))。
兰伯特W函数是一个具有无限多分支的多值函数。 每个分支给出了方程z = w exp(w)的单独解。 这里,分支由整数k索引。
参考下面的一个例子。 这里,兰伯特W函数是w exp(w)的逆函数。
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
from scipy.special import lambertw
w = lambertw(1)
print (w)
print (w * np.exp(w))
上述程序将生成以下输出 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
(0.56714329041+0j)
(1+0j)
排列和组合
下面将分开讨论排列和组合,以便清楚地理解它们。
组合 - 组合函数的语法是 - scipy.special.comb(N,k)。参考下面的一个例子 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
from scipy.special import comb
res = comb(10, 3, exact = False,repetition=True)
print (res)
执行上面示例代码,得到以下结果 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
220.0
注 - 数组参数仅适用于exact = False大小写。 如果k> N,N <0或k <0,则返回0。
排列 - 组合函数的语法是 - scipy.special.perm(N,k)。 一次取k个N个东西的排列,即N个k个排列。这也被称为“部分排列”。
参考下面的一个例子。
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
from scipy.special import perm
res = perm(10, 3, exact = True)
print (res)
上述程序将生成以下输出 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
720
伽马函数由于z * gamma(z)= gamma(z + 1)和gamma(n + 1)= n!,所以对于自然数'n',伽马函数通常被称为广义阶乘。
组合函数的语法是 - scipy.special.gamma(x)。 一次取k个N个东西的排列,即N个k个排列。这也被称为“部分排列”。
组合函数的语法是 - scipy.special.gamma(x)。 一次取k个N个东西的排列,即N个k个排列。这也被称为“部分排列”。
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
from scipy.special import gamma
res = gamma([0, 0.5, 1, 5])
print (res)
执行上面示例代码,得到以下结果 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-27
[inf 1.77245385 1. 24.]
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4