# Python - How To Calculate Percentile in Python

ID : 367

viewed : 81  92

Percentiles indicate the percentage of scores that fall below a certain value. An individual with an IQ of 120, for instance, is at the 91st percentile, which means that his IQ is greater than 91% of other people.

## Calculate Percentile in Python Using the `scipy` Package

This package will calculate the score of the input series at a given percentile. The syntax of the `scoreatpercentile()` function is given below:

``scipy.stats.scoreatpercentile(a, per, limit=(), interpolation_method='fraction', axis=None) ``

In the `scoreatpercentile()` function, the parameter `a` represents a 1-D array, and `per` specifies the percentile ranging from 0 to 100. The other two parameters are optional. The `NumPy` library is used to get the numbers on which we calculated percentile.

The complete example code is given below.

``from scipy import stats import numpy as np  array = np.arange(100)  percentile=stats.scoreatpercentile(array, 50)  print("The percentile is:",percentile) ``

Output:

``The percentile is: 49.5 ``

## Calculate Percentile in Python Using the `NumPy` Package

This package has a `percentile()` function that will calculate the percentile of given array. The syntax of the `percentile()` function is given below.

``numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False) ``

The parameter `q` represents the percentile calculation number. `a` represents an array while the other parameters are optional.

The complete example code is given below.

``import numpy as np  arry = np.array([4,6,8,10,12])  percentile = np.percentile(arry, 50)  print("The percentile is:",percentile) ``

Output:

``The percentile is: 8.0 ``

## Calculate Percentile in Python Using the `math` Package

The `math` package with its basic function - `ceil` can be used to calculate different percentiles.

The complete example code is given below.

``import math  arry=[1,2,3,4,5,6,7,8,9,10]  def calculate_percentile(arry, percentile):     size = len(arry)     return sorted(arry)[int(math.ceil((size * percentile) / 100)) - 1]  percentile_25 = calculate_percentile(arry, 25) percentile_50 = calculate_percentile(arry, 50) percentile_75 = calculate_percentile(arry, 75)  print("The 25th percentile is:",percentile_25) print("The 50th percentile is:",percentile_50) print("The 75th percentile is:",percentile_75) ``

The `math.ceil(x)` rounds off the value and returns the smallest integer greater than or equal to `x`, while the `sorted` function sorts the array.

Output:

``The 25th percentile is: 3 The 50th percentile is: 5 The 75th percentile is: 8 ``

## Calculate Percentile in Python Using the `statistics` Package

The `quantiles()` function in the `statistics` package is used to break down the data into equal probability and return a distribution list of `n-1`. The syntax of this function is given below.

``statistics.quantiles(data, *, n=4, method='exclusive') ``

The complete example code is given below.

``from statistics import quantiles  data =[1,2,3,4,5]  percentle=quantiles(data, n=4)  print("The Percentile is:",percentle) ``

Output:

``The Percentile is: [1.5, 3.0, 4.5] ``

## Calculate Percentile in Python Using the NumPy’s Linear Interpolation Method

We can calculate different percentiles using the interpolation mode. The interpolation modes are `linear`, `lower`, `higher`, `midpoint` and `nearest`. These interpolations are used when the percentiles are in between two data points, `i` and `j`. When the percentile value is `i`, it is lower interpolation mode, `j` represents higher interpolation mode, and `i + (j - i) * fraction` represents the linear mode where `fraction` indicates the index surrounded by `i` and `j`.

The complete example code for linear interpolation mode is given below.

``import numpy as np  arry=np.array([1,2,3,4,5,6,7,8,9,10])  print('percentiles using interpolation = ', "linear")  percentile_10 = np.percentile(arry, 10,interpolation='linear')  percentile_50 = np.percentile(arry, 50,interpolation='linear')  percentile_75 = np.percentile(arry, 75,interpolation='linear')  print('percentile_10 = ',percentile_10,', median = ',percentile_50,' and percentile_75 = ',percentile_75) ``

We use `numpy.percentile()` function with additional parameter `interpolation`. You can see that we get float values for this interpolation.

Output:

``percentiles using interpolation =  linear percentile_10 =  1.9 , median =  5.5  and percentile_75 =  7.75 ``

## Calculate Percentile in Python Using the NumPy’s Lower Interpolation Method

The complete example code for lower interpolation mode is given below.

``import numpy as np  arry=np.array([1,2,3,4,5,6,7,8,9,10])  print('percentiles using interpolation = ', "lower")  percentile_10 = np.percentile(arry, 10,interpolation='lower')  percentile_50 = np.percentile(arry, 50,interpolation='lower')  percentile_75 = np.percentile(arry, 75,interpolation='lower')  print('percentile_10 = ',percentile_10,', median = ',percentile_50,' and percentile_75 = ',percentile_75) ``

Output:

``percentiles using interpolation =  lower percentile_10 =  1 , median =  5  and percentile_75 =  7 ``

You can see that the final percentile is rouded-off to the lowest value.

## Calculate Percentile in Python Using the NumPy’s Higher Interpolation Method

This method will give percentiles of the given array to the highest round-off value.

The complete example code for higher interpolation mode is given below.

``import numpy as np  arry=np.array([1,2,3,4,5,6,7,8,9,10])  print('percentiles using interpolation = ', "higher")  percentile_10 = np.percentile(arry, 10,interpolation='higher')  percentile_50 = np.percentile(arry, 50,interpolation='higher')  percentile_75 = np.percentile(arry, 75,interpolation='higher')  print('percentile_10 = ',percentile_10,', median = ',percentile_50,' and percentile_75 = ',percentile_75) ``

Output:

``percentiles using interpolation =  higher percentile_10 =  2 , median =  6  and percentile_75 =  8 ``

## Calculate Percentile in Python Using the NumPy’s Midpoint Interpolation Method

This method will give midpoints of the percentile values.

The complete example code for midpoint interpolation mode is given below.

``import numpy as np  arry=np.array([1,2,3,4,5,6,7,8,9,10])  print('percentiles using interpolation = ', "midpoint")  percentile_10 = np.percentile(arry, 10,interpolation='midpoint')  percentile_50 = np.percentile(arry, 50,interpolation='midpoint')  percentile_75 = np.percentile(arry, 75,interpolation='midpoint')  print('percentile_10 = ',percentile_10,', median = ',percentile_50,' and percentile_75 = ',percentile_75) ``

Output:

``percentiles using interpolation =  midpoint percentile_10 =  1.5 , median =  5.5  and percentile_75 =  7.5 ``