NumPy Partition Function

PythonPythonBeginner
Practice Now

Introduction

In this lab, you will learn about the numpy.partition() function of the Numpy library. This function is used to split up the input array according to the given arguments, and returns the partitioned copy of the input array. The numpy.partition() function is helpful when we want to quickly find the kth smallest or largest element in an array, without sorting the whole array.

VM Tips

After the VM startup is done, click the top left corner to switch to the Notebook tab to access Jupyter Notebook for practice.

Sometimes, you may need to wait a few seconds for Jupyter Notebook to finish loading. The validation of operations cannot be automated because of limitations in Jupyter Notebook.

If you face issues during learning, feel free to ask Labby. Provide feedback after the session, and we will promptly resolve the problem for you.

Import Numpy Library

First, we need to import the Numpy library, which is commonly used for working with arrays and matrices in Python.

import numpy as np

Create Input Array

Next, we will create an input array using the Numpy array() method. This array will be the starting point for us to use the numpy.partition() function on.

inp_ar = np.array([2, 0, 1, 5, 4, 9, 78, 34])
print("The input array:")
print(inp_ar)

Partition the Array

Now, we will use the numpy.partition() function to partition the input array inp_ar around the 5th smallest number. We will also print out the resulting partitioned array.

output = np.partition(inp_ar, 5)
print("The partitioned array:")
print(output)

Partition an Array with Multiple Kth Values

The numpy.partition() function also allows partitioning around multiple kth values. In this example, we will partition an array around the 1st and 3rd smallest numbers.

arr = np.array([7, 4, 8, 1, 10, 13])
print("The input array:")
print(arr)

output = np.partition(arr, (1, 3))
print("The partitioned array:")
print(output)

Specify Axis, Kind, and Order

The numpy.partition() function also has optional parameters that allow you to specify which axis to partition along, the kind of sorting to perform, and the order in which to compare fields. In this example, we will use these optional parameters to partition a 2D array along the second axis and specify the sorting kind and order.

arr_2d = np.array([[4, 5, 2], [3, 1, 6]])
print("The input 2D array:")
print(arr_2d)

output = np.partition(arr_2d, 1, axis=1, kind='heapsort', order=('col1', 'col2', 'col0'))
print("The partitioned 2D array:")
print(output)

Partition with Negative Kth Value

The numpy.partition() function can also handle negative values of the kth parameter. In this example, we will partition an array around the -2nd smallest number.

arr = np.array([9, 3, 4, 1, 6])
print("The input array:")
print(arr)

output = np.partition(arr, -2)
print("The partitioned array:")
print(output)

Summary

In this lab, you learned about the numpy.partition() function of the Numpy library. We covered how to create an input array, partition it using the numpy.partition() function, partition around multiple kth values, specify axis, kind, and order, and handle negative kth values. The numpy.partition() function is useful when dealing with large arrays and wanting to quickly find the kth smallest or largest element without sorting the whole array.

Other Python Tutorials you may like