Open In App

Rank Values in NumPy Array

Last Updated : 29 Sep, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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




# Python program to rank items in
# NumPy array using argsort function
 
# Import the library numpy
import numpy as np
 
# Define the NumPy array
arr = np.array([[1, 2, 3],[5, 6, 4], [9, 8, 7]])
 
# Rank items in NumPy array using argort() function
rank = np.array(arr).argsort().argsort()
 
# Print the rank of elements
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




# Python program to rank items in
# NumPy array using rankdata function
 
# Import the libraries numpy and rankdata
import numpy as np
from scipy.stats import rankdata
 
# Define the NumPy array
arr = np.array([7, 4, 13, 2, 19, 5])
 
# Calculate rank of each item in array
rank_items = rankdata(arr)
 
# Print the rank of each element
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




# Python program to rank items in
# NumPy array using rankdata function
 
# Import the libraries numpy and rankdata
import numpy as np
from scipy.stats import rankdata
 
# Define the NumPy array
arr = np.array([[1, 2, 3, 4, 5],[6, 7, 8, 9, 0]])
 
#calculate rank of each row in array
rank0 = rankdata(arr[0])
rank1= rankdata(arr[1])
 
# Combine rank of each row to form 2D array
rank=np.row_stack((rank0,rank1))
 
# Print the rank of each element
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




# Python program to rank items in
# NumPy array using rankdata function
 
# Import the libraries numpy and rankdata
import numpy as np
from scipy.stats import rankdata
 
# Define the NumPy array
arr = np.array([[1, 2, 3],[5, 6, 4], [9, 8, 7]])
 
#calculate rank of each row in array
rank0 = rankdata(arr[0])
rank1= rankdata(arr[1])
rank2= rankdata(arr[2])
 
# Combine rank of each row to form 2D array
rank=np.row_stack((rank0,rank1,rank2))
 
# Print the rank of each element
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.

Python3





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




# Python program to rank items in
# NumPy array using rankdata function
 
# Import the libraries numpy and rankdata
import numpy as np
from scipy.stats import rankdata
 
# Define the NumPy array
arr = np.array([[1, 2, 3],[5, 6, 4], [9, 8, 7]])
 
#calculate rank of each row in array
rank0 = rankdata(arr[0])
rank1= rankdata(arr[1])
rank2= rankdata(arr[2])
 
# Combine rank of each row to form 2D array
rank=np.row_stack((rank0,rank1,rank2))
 
# Print the rank of each element
print(rank)


Output

[[1. 2. 3.]
[2. 3. 1.]
[3. 2. 1.]]


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads