Numpy take() Function



The Numpy take() function is used to extract elements from an array along the specified axis, based on the indices provided. It allows flexible indexing into arrays, similar to array slicing but with more control over selecting elements.

The take() function works with both 1D and multi-dimensional arrays, and the indices can be positive or negative, with negative indices representing positions from the end of the array.

Syntax

Following is the syntax of the Numpy take() function −

numpy.take(a, indices, axis=None, out=None, mode='raise')

Parameters

Following are the parameters of the Numpy take() function −

  • a: The input array from which elements are to be taken.
  • indices: Indices of the elements to be taken. It can be an array of indices or a single integer. If negative indices are provided, the function takes elements from the end of the array.
  • axis (optional): The axis along which to take the elements. By default, the entire array is flattened and indices are applied across the entire array.
  • out (optional): A location where the result is stored. If not provided, a new array is returned.
  • mode (optional): A string that controls how out-of-bounds indices are handled. It can be 'raise' (default), 'wrap', or 'clip'.

Return Type

This function returns an array containing the extracted elements from the input array.

Example

Following is a basic example to extract elements from a 1D array using the Numpy take() function −

import numpy as np  
array = np.array([10, 20, 30, 40, 50])  
result = np.take(array, [0, 2, 4])  
print("Selected elements:", result)  

Output

Following is the output of the above code −

Selected elements: [10 30 50]  

Example: Using Negative Indices

The take() function can handle negative indices, which refer to positions counted from the end of the array. In the following example, we have passed negative indices -1 and -3 as arguments. This results in selecting elements from the end of the array, starting from the last element for -1 and the third-to-last element for -3

import numpy as np  
array = np.array([10, 20, 30, 40, 50])  
print("Array:",array)
result = np.take(array, [-1, -3])  
print("Selected elements:", result)  

Output

Following is the output of the above code −

Array: [10 20 30 40 50]
Selected elements: [50 30]  

Example: Using the Axis Parameter

When working with multi-dimensional arrays, the axis parameter can be used to extract elements along a specific axis. Here, we have extracted elements from the second row (axis 0) of a 2D array −

import numpy as np  
array = np.array([[10, 20, 30], [40, 50, 60], [70, 80, 90]])  
result = np.take(array, [1, 2], axis=0)  
print("Elements from the second row:", result)  

Output

Following is the output of the above code −

Elements from the second row: [40 50 60]  

Example: Using the Mode Parameter

The mode parameter in the take() function when set to clip, ensures that if an index is out of bounds, returns the nearest valid element. In the following example, we have passed 10 as an index, which is out of bounds. Since the mode is set to clip, the function returns the last element of the array −

import numpy as np  
array = np.array([10, 20, 30, 40, 50])  
result = np.take(array, [0, 2, 6], mode='clip')  
print("Selected elements (with clipping):", result)  

Output

Following is the output of the above code −

Selected elements (with clipping): [10 30 50]  
numpy_array_manipulation.htm
Advertisements