Rank Values in NumPy Array
Last Updated :
29 Sep, 2023
When working with data in NumPy arrays, it’s often necessary to rank the elements based on certain criteria. Ranking can be useful for tasks like finding the largest or smallest values, identifying outliers, or sorting data for further analysis. In this article, we are going to see how to rank items in Numpy arrays in Python.
Rank Items in Python NumPy Array:
Below are the ways by which we can rank items in NumPy Array:
Rank Items using argsort() function
In this example, we have used a 1-D array to rank items in Python NumPy Array using argsort() function.
Python3
import numpy as np
arr = np.array([[ 1 , 2 , 3 ],[ 5 , 6 , 4 ], [ 9 , 8 , 7 ]])
rank = np.array(arr).argsort().argsort()
print (rank)
|
Output
[3 1 4 0 5 2]
Rank Items in 2-D Array
In this example, we have used a 2-D array to rank items in NumPy Array using argsort() function.
Python3
import numpy as np
from scipy.stats import rankdata
arr = np.array([ 7 , 4 , 13 , 2 , 19 , 5 ])
rank_items = rankdata(arr)
print (rank_items)
|
Output
[[0 1 2 3 4]
[1 2 3 4 0]]
Rank Items in 3-D Array
In this example, we have used a 3-D array to rank items in NumPy Array using argsort() function.
Python3
import numpy as np
from scipy.stats import rankdata
arr = np.array([[ 1 , 2 , 3 , 4 , 5 ],[ 6 , 7 , 8 , 9 , 0 ]])
rank0 = rankdata(arr[ 0 ])
rank1 = rankdata(arr[ 1 ])
rank = np.row_stack((rank0,rank1))
print (rank)
|
Output
[[0 1 2]
[1 2 0]
[2 1 0]]
Rank Items using rankdata() in Python
In this example, we have used a 1-D array to rank items in NumPy Array using rankdata() in Python.
Python3
import numpy as np
from scipy.stats import rankdata
arr = np.array([[ 1 , 2 , 3 ],[ 5 , 6 , 4 ], [ 9 , 8 , 7 ]])
rank0 = rankdata(arr[ 0 ])
rank1 = rankdata(arr[ 1 ])
rank2 = rankdata(arr[ 2 ])
rank = np.row_stack((rank0,rank1,rank2))
print (rank)
|
Output
[4. 2. 5. 1. 6. 3.]
Rank Items in 2D Array
In this example, we have used a 2-D array to rank items in NumPy Array using rankdata() function.
Output
[[1. 2. 3. 4. 5.]
[2. 3. 4. 5. 1.]]
Rank Items in 3D Array
In this example, we have used a 3-D array to rank items in NumPy Array.
Python3
import numpy as np
from scipy.stats import rankdata
arr = np.array([[ 1 , 2 , 3 ],[ 5 , 6 , 4 ], [ 9 , 8 , 7 ]])
rank0 = rankdata(arr[ 0 ])
rank1 = rankdata(arr[ 1 ])
rank2 = rankdata(arr[ 2 ])
rank = np.row_stack((rank0,rank1,rank2))
print (rank)
|
Output
[[1. 2. 3.]
[2. 3. 1.]
[3. 2. 1.]]
Share your thoughts in the comments
Please Login to comment...