Special functions in SciPy
Last Updated :
21 Apr, 2021
In this article, we are going to see about special functions in Scipy. The special functions in scipy are used to perform mathematical operations on the given data. Special function in scipy is a module available in scipy package. Inside this special function, the available methods are:
- cbrt – which gives the cube root of the given number
- comb – gives the combinations of the elements
- exp10 – gives the number with raise to 10 power of the given number
- exprel – gives the relative error exponential, (exp(x) – 1)/x.
- gamma – returns the value by calculating the z*gamma(z) = gamma(z+1) and gamma(n+1) = n!, for a natural number ‘n’.
- lambertw – computes the W(z) * exp(W(z)) for any complex number z, where W is the lambertw function
- logsumexp – gives the log of the sum of exponential of given number
- perm – gives the permutations of the elements
Let’s understand about these functions in detail.
1. cbrt()
This is used to return the cube root of the given number.
Syntax: cbrt(number)
Example: Program to find the cube root
Python3
from scipy.special import cbrt
print (cbrt( 64 ))
print (cbrt( 78 ))
print (cbrt( 128 ))
|
Output:
4.0
4.272658681697917
5.039684199579493
Example: Program to find cube root in the given array elements.
Python3
from scipy.special import cbrt
arr = [ 64 , 164 , 564 , 4 , 640 ]
arr = list ( map (cbrt,arr))
print (arr)
|
Output:
[4.0, 5.473703674798428, 8.26214922566535, 1.5874010519681994, 8.617738760127535]
2. comb()
It is known as combinations and returns the combination of a given value.
Syntax: scipy.special.comb(N, k)
Where, N is the input value and k is the number of repetitions.
Example 1:
Python3
from scipy.special import comb
print (comb( 4 , 1 ))
|
Output:
4.0
Example 2:
Python3
from scipy.special import comb
print ([comb( 4 , 1 ),comb( 4 , 2 ),comb( 4 , 3 ),
comb( 4 , 4 ),comb( 4 , 5 )])
print ([comb( 6 , 1 ),comb( 6 , 2 ),comb( 6 , 3 ),
comb( 6 , 4 ),comb( 6 , 5 )])
|
Output:
[4.0, 6.0, 4.0, 1.0, 0.0]
[6.0, 15.0, 20.0, 15.0, 6.0]
3. exp10()
This method gives the number with raise to 10 power of the given number.
Syntax: exp10(value)
Where value is the number which is given as the input.
Example: Program to find the power of 10
Python3
from scipy.special import exp10
print (exp10( 2 ))
|
Output:
100.0
Example: Program to find the powers of 10 for a range
Python3
from scipy.special import exp10
for i in range ( 1 , 10 ):
print (exp10(i)
|
Output:
10.0
100.0
1000.0
10000.0
100000.0
1000000.0
10000000.0
100000000.0
1000000000.0
4. exprel()
It is known as the Relative Error Exponential Function. It returns the error value for a given variable. If x is near zero, then exp(x) is near 1.
Syntax: scipy.special.exprel(input_data)
Example 1:
Python3
from scipy.special import exprel
print (exprel( 0 ))
|
Output:
1.0
Example 2:
Python3
from scipy.special import exprel
arr = [ 0 , 1 , 2 , 3 , 4 , 5 ]
print ( list ( map (exprel,arr)))
|
Output:
[1.0, 1.718281828459045, 3.194528049465325, 6.361845641062556, 13.399537508286059, 29.48263182051532]
5. gamma()
It is known as Gamma function. It is the generalized factorial since z*gamma(z) = gamma(z+1) and gamma(n+1) = n!, for a natural number ‘n’.
Syntax: scipy.special.gamma(input_data)
Where, input data is the input number.
Example 1:
Python3
from scipy.special import gamma
print (gamma( 56 ))
|
Output:
1.2696403353658278e+73
Example 2:
Python3
from scipy.special import gamma
print ([gamma( 56 ), gamma( 156 ), gamma( 0 ),
gamma( 1 ), gamma( 5 )])
|
Output:
[1.2696403353658278e+73, 4.789142901463394e+273, inf, 1.0, 24.0]
6. lambertw()
It is also known as Lambert Function. It calculates the value of W(z) is such that z = W(z) * exp(W(z)) for any complex number z, where W is known as the Lambert Function
Syntax: scipy.special.lambertw(input_data)
Example:
Python3
from scipy.special import lambertw
print ([lambertw( 1 ),lambertw( 0 ),lambertw( 56 ),
lambertw( 68 ),lambertw( 10 )])
|
Output:
[(0.5671432904097838+0j), 0j, (2.9451813101206707+0j), (3.0910098540499797+0j), (1.7455280027406994+0j)]
7. logsumexp()
It is known as Log Sum Exponential Function. It will return the log of the sum of the exponential of input elements.
Syntax: scipy.special.logsumexp(input_value)
where, input value is the input data.
Example 1:
Python
from scipy.special import logsumexp
a = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]
print (logsumexp(a))
|
Output:
10.45862974442671
Example 2:
Python3
from scipy.special import logsumexp
a = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]
b = [ 10 , 11 , 12 , 13 , 14 , 15 ]
print ([logsumexp(a), logsumexp(b)])
|
Output:
[10.45862974442671, 15.456193316018123]
8. perm()
The perm stands for the permutation. It will return the permutation of the given numbers.
Syntax: scipy.special.perm(N,k)
where N is the input value and k is the no of repetitions.
Example:
Python3
from scipy.special import perm
print ([perm( 4 , 1 ), perm( 4 , 2 ), perm( 4 , 3 ),
perm( 4 , 4 ), perm( 4 , 5 )])
print ([perm( 6 , 1 ), perm( 6 , 2 ), perm( 6 , 3 ),
perm( 6 , 4 ), perm( 6 , 5 )])
|
Output:
[4.0, 12.0, 24.0, 24.0, 0.0]
[6.0, 30.0, 120.0, 360.0, 720.0]
Share your thoughts in the comments
Please Login to comment...