Saturday, March 13, 2021

Python Pool: 6 Ways to Calculate Percentile of Numpy Array

What is Numpy Percentile?

The percentile method in the numpy module is used to calculate the nth percentile of the given data (array elements) along the specified axis. We basically use percentile in statistics which gives you a number that describes the value that a given percent of the values are lower than.

Syntax

numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, keepdims=False)

Parameters

  1. a: array_like – This is the Input array.
  2. q: array_like of float – This is the percentile or sequence of percentile we need to compute. It should be between 0 to 100, both inclusive.
  3. axis : {int, tuple of int, None} – It is optional input. This is the axis along which we calculate the percentile. By default, we compute the percentile along with the flattened version of the array.
  4. out: ndarray – It is also an optional input. It is the alternative output array which we make to place the result. It should have the same shape and buffer length as the expected output, but the type can be cast by itself if it is required.
  5. overwrite_input: bool – It is also optional input. If the boolean value is True, we can modify the input array through intermediate calculations to save the memory.
  6. keepdims: bool– It is also optional input. If the value is set to be True, the reduced axes are left in the result as dimensions with one size. With this, the result will be correctly against the original array.

Return Value

If q is a single percentile and the axis is set to None, then the output is always a scalar or array with percentile values along the specified axis. 

Examples to Find Numpy Percentile

Let us understand the percentile function of the numpy module in details with the help of examples:

1. Numpy Percentile using 1-d Array

We will be using a 1-D array for calculating the percentile of the array by taking the input array.

#using 1-D array
#numpy.percentile() method

import numpy as np

arr = [5,6,9,87,2,3,5,7,2,6,5,2,3,4,69,4]
print("Array : ",arr)

x = np.percentile(arr, 50)
print("50 percentile : ",x)

Output:

Array :  [5, 6, 9, 87, 2, 3, 5, 7, 2, 6, 5, 2, 3, 4, 69, 4]
50 percentile :  5.0

Explanation:

Here firstly, we have imported the numpy module in python as np. Secondly, we have taken a 1-d array. Thirdly, we have printed the input array. Fourthly, we have used the percentile method as np.percentile() in which we have given arr and 50 percentile as the parameter and stored that value in the x variable. At last, we have printed the value of x. Hence, the output is printed on the screen.

2. using 2-D array

We will be using a 2-D array for calculating the percentile of the array by taking the input array.

#using 2-D array
#numpy.percentile() method

import numpy as np

arr = [[5,6,8],[6,9,2]]
print("Array : ",arr)

x = np.percentile(arr, 50)
print("50 percentile : ",x)

Output:

Array :  [[5, 6, 8], [6, 9, 2]]
50 percentile :  6.0

Explanation:

Here firstly, we have imported the numpy module in python as np. Secondly, we have taken a 2-d array. Thirdly, we have printed the input array. Fourthly, we have used the percentile method as np.percentile() in which we have given arr and 50 percentile as the parameter and stored that value in the x variable. At last, we have printed the value of x. Hence, the output is printed on the screen.

3. Numpy Percentile using axis = 0 in 2-D array

We will be using axis = 0 in a 2-D array for calculating the percentile of the array by taking the input array.

#using 2-D array axis = 0
#numpy.percentile() method

import numpy as np

arr = [[5,6,8],[6,9,2]]
print("Array : ",arr)

x = np.percentile(arr, 25, axis = 0)
print("50 percentile : ",x)

Output:

Array :  [[5, 6, 8], [6, 9, 2]]
50 percentile :  [5.25 6.75 3.5 ]

Explanation:

Here firstly, we have imported the numpy module in python as np. Secondly, we have taken a 2-d array. Thirdly, we have printed the input array. Fourthly, we have used the percentile method as np.percentile() in which we have given arr, 25 percentile, and axis = 0 as the parameter and stored that value in the x variable. At last, we have printed the value of x. Hence, the output is printed on the screen.

4. using axis = 1 in 2-d array

We will be using axis = 1 in a 2-D array for calculating the percentile of the array by taking the input array.

#using 2-D array axis = 1
#numpy.percentile() method

import numpy as np

arr = [[5,6,8],[6,9,2]]
print("Array : ",arr)

x = np.percentile(arr, 25, axis = 1)
print("50 percentile : ",x)

Output:

Array :  [[5, 6, 3], [6, 7, 2]]
50 percentile :  [4. 4. ]

Explanation:

Here firstly, we have imported the numpy module in python as np. Secondly, we have taken a 2-d array. Thirdly, we have printed the input array. Fourthly, we have used the percentile method as np.percentile() in which we have given arr, 25 percentile, and axis = 1 as the parameter and stored that value in the x variable. At last, we have printed the value of x. Hence, the output is printed on the screen.

5. Numpy Percentile using axis=1 and keepdims = true in a 2-D array

We will be using axis = 1 and Keepdims = True in a 2-D array for calculating the percentile of the array by taking the input array.

#using 2-D array axis = 1 and Keepdims = True
#numpy.percentile() method

import numpy as np

arr = [[10,9,4],[3,2,1]]
print("Array : ",arr)

x = np.percentile(arr, 50, axis = 1, keepdims = True)
print("50 percentile : ",x)

Output:

Array :  [[10, 9, 4], [3, 2, 1]]
50 percentile :  [[9.]
 [2.]]

Explanation:

Here firstly, we have imported the numpy module in python as np. Secondly, we have taken a 2-d array. Thirdly, we have printed the input array. Fourthly, we have used the percentile method as np.percentile() in which we have given arr, 50 percentile, axis = 1, and keepdims= True as the parameter. The value has stored that value in the x variable. At last, we have printed the value of x. Hence, the output is printed on the screen.

6. using Out parameter in 2-d array

We will be using axis = 0 and out in a 2-D array for calculating the percentile of the array by taking the input array.

import numpy as np

arr = [[10,9,4],[3,2,1]]
print("Array : ",arr)
m = np.percentile(arr, 50, axis=0)
out = np.zeros_like(m)
x = np.percentile(arr, 50, axis=0, out=out)
print("50 percentile : ",x)

Output:

Array :  [[10, 9, 4], [3, 2, 1]]
50 percentile :  [6.5 5.5 2.5]

Explanation:

Here firstly, we have imported the numpy module in python as np. Secondly, we have taken a 2-d array. Thirdly, we have printed the input array. Fourthly, we have used the percentile method as np.percentile() in which we have given arr, 50 percentile, axis = 0, and out(output array of the same shape and buffer length) as the parameter. The value has stored that value in the x variable. At last, we have printed the value of x. Hence, the output is printed on the screen.

Must Read

Numpy Percentile vs Quantile

Percentile – Percentile method in the numpy module through which we can calculate the nth percentile of the given data (array elements) along the specified axis.

Numpy Quantile – Quantile method in the numpy module through which we can calculate the qth quantile of the given data(array elements) along the specified axis.

Let us understand with the help of example:

#numpy percentile vs numpy quantile

import numpy as np

arr = [10,20,30,40,50]

print("Array : ",arr)
print("\n")

print("25 percentile : ",np.percentile(arr, 25))
print("50 percentile : ",np.percentile(arr, 50))
print("75 percentile : ",np.percentile(arr, 75))
print("\n")

print(".25 Quantile : ",np.Quantile(arr, .25))
print(".50 Quantile : ",np.Quantile(arr, .50))
print(".75 Quantile : ",np.Quantile(arr, .75))

Output:

Array :  [10, 20, 30, 40, 50]


25 percentile :  20.0
50 percentile :  30.0
75 percentile :  40.0


.25 Quantile :  20.0
.50 Quantile :  30.0
.75 Quantile :  40.0

Explanation:

Here firstly, we have imported the numpy module as np. Secondly, we have taken an input array in the arr variable. Thirdly, we have applied the percentile function in which we have calculated the 25th, 50th, and 75th percentile and printed the output. Fourthly, we have applied the quantile function in which we have calculated the .25th, .50th, and .75th percentile and printed the output. Hence, we can see the output and get to know that there is only a difference which says 1 percentile = .01 quantile.

Conclusion

In this tutorial, we have learned about the percentile calculation with the help of the percentile method in the numpy standard library. All the parameters are explained with examples in detail. You can use any parameter according to your need in your program or project.

The post 6 Ways to Calculate Percentile of Numpy Array appeared first on Python Pool.



from Planet Python
via read more

No comments:

Post a Comment

TestDriven.io: Working with Static and Media Files in Django

This article looks at how to work with static and media files in a Django project, locally and in production. from Planet Python via read...