SciPy - Pacote Especial
As funções disponíveis no pacote especial são funções universais, que seguem a transmissão e o loop automático de matriz.
Vejamos algumas das funções especiais usadas com mais frequência -
- Função Raiz Cúbica
- Função exponencial
- Função Exponencial de Erro Relativo
- Função exponencial de soma de log
- Função Lambert
- Função de permutações e combinações
- Função Gamma
Vamos agora entender cada uma dessas funções resumidamente.
Função Raiz Cúbica
A sintaxe desta função raiz cúbica é - scipy.special.cbrt (x). Isso irá buscar a raiz cúbica elementar dex.
Vamos considerar o seguinte exemplo.
from scipy.special import cbrt
res = cbrt([10, 9, 0.1254, 234])
print res
O programa acima irá gerar a seguinte saída.
[ 2.15443469 2.08008382 0.50053277 6.16224015]
Função exponencial
A sintaxe da função exponencial é - scipy.special.exp10 (x). Isso calculará 10 ** x elemento sábio.
Vamos considerar o seguinte exemplo.
from scipy.special import exp10
res = exp10([2, 9])
print res
O programa acima irá gerar a seguinte saída.
[1.00000000e+02 1.00000000e+09]
Função Exponencial de Erro Relativo
A sintaxe para esta função é - scipy.special.exprel (x). Ele gera o erro relativo exponencial, (exp (x) - 1) / x.
Quando xé próximo a zero, exp (x) é próximo a 1, então o cálculo numérico de exp (x) - 1 pode sofrer uma perda catastrófica de precisão. Então exprel (x) é implementado para evitar a perda de precisão, que ocorre quandox está perto de zero.
Vamos considerar o seguinte exemplo.
from scipy.special import exprel
res = exprel([-0.25, -0.1, 0, 0.1, 0.25])
print res
O programa acima irá gerar a seguinte saída.
[0.88479687 0.95162582 1. 1.05170918 1.13610167]
Função exponencial de soma de log
A sintaxe para esta função é - scipy.special.logsumexp (x). Ajuda a calcular o log da soma das exponenciais dos elementos de entrada.
Vamos considerar o seguinte exemplo.
from scipy.special import logsumexp
import numpy as np
a = np.arange(10)
res = logsumexp(a)
print res
O programa acima irá gerar a seguinte saída.
9.45862974443
Função Lambert
A sintaxe para esta função é - scipy.special.lambertw (x). Também é chamada de função Lambert W. A função W de Lambert W (z) é definida como a função inversa de w * exp (w). Em outras palavras, o valor de W (z) é tal que z = W (z) * exp (W (z)) para qualquer número complexo z.
A função Lambert W é uma função multivalorada com infinitos ramos. Cada ramo fornece uma solução separada da equação z = w exp (w). Aqui, os ramos são indexados pelo inteiro k.
Vamos considerar o seguinte exemplo. Aqui, a função Lambert W é o inverso de w exp (w).
from scipy.special import lambertw
w = lambertw(1)
print w
print w * np.exp(w)
O programa acima irá gerar a seguinte saída.
(0.56714329041+0j)
(1+0j)
Permutações e combinações
Vamos discutir permutações e combinações separadamente para entendê-las claramente.
Combinations- A sintaxe da função de combinações é - scipy.special.comb (N, k). Vamos considerar o seguinte exemplo -
from scipy.special import comb
res = comb(10, 3, exact = False,repetition=True)
print res
O programa acima irá gerar a seguinte saída.
220.0
Note- Argumentos de matriz são aceitos apenas para caso exato = Falso. Se k> N, N <0 ou k <0, então 0 é retornado.
Permutations- A sintaxe da função de combinações é - scipy.special.perm (N, k). Permutações de N coisas tomadas k de cada vez, ou seja, k-permutações de N. Isso também é conhecido como “permutações parciais”.
Vamos considerar o seguinte exemplo.
from scipy.special import perm
res = perm(10, 3, exact = True)
print res
O programa acima irá gerar a seguinte saída.
720
Função Gamma
A função gama é freqüentemente referida como fatorial generalizado, uma vez que z * gama (z) = gama (z + 1) e gama (n + 1) = n !, para um número natural 'n'.
A sintaxe da função de combinações é - scipy.special.gamma (x). Permutações de N coisas tomadas k de cada vez, ou seja, k-permutações de N. Isso também é conhecido como “permutações parciais”.
A sintaxe da função de combinações é - scipy.special.gamma (x). Permutações de N coisas tomadas k de cada vez, ou seja, k-permutações de N. Isso também é conhecido como “permutações parciais”.
from scipy.special import gamma
res = gamma([0, 0.5, 1, 5])
print res
O programa acima irá gerar a seguinte saída.
[inf 1.77245385 1. 24.]