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