Open In App

Special functions in SciPy

Last Updated : 21 Apr, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

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
  
# cube root of 64
print(cbrt(64))
  
# cube root of 78
print(cbrt(78))
  
# cube root of 128
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
  
# cube root of elements in an array
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




# import combinations
from scipy.special import comb
  
# combinations of input 4
print(comb(4,1))


Output:

4.0

Example 2:

Python3




# import combinations module
from scipy.special import comb
  
# combinations of 4
print([comb(4,1),comb(4,2),comb(4,3),
       comb(4,4),comb(4,5)])
  
# combinations of 6
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
  
  
# 10 to the power of 2
print(exp10(2))


Output:

100.0

Example: Program to find the powers of 10 for a range

Python3




from scipy.special import exp10
  
# exponent raise to power 10 
# for a range
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




# import exprel
from scipy.special import exprel
  
  
# calculate exprel of 0
print(exprel(0))


Output:

1.0

Example 2:

Python3




# import exprel
from scipy.special import exprel
  
# list of elements 
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




# import gamma function
from scipy.special import gamma
  
  
print(gamma(56))


Output:

1.2696403353658278e+73

Example 2:

Python3




# import gamma function
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




# import lambert function
from scipy.special import lambertw
  
# calculate W value
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
  
# logsum exp of numbers from 
# 1 to 10
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
  
# logsum exp of numbers from
# 1 to 10
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  
# logsum exp of numbers from 
# 10 to 15
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




# import permutations module
from scipy.special import perm
  
# permutations of 4
print([perm(4, 1), perm(4, 2), perm(4, 3), 
       perm(4, 4), perm(4, 5)])
  
# permutations of 6
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]


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads