Numpy choose() Function



The Numpy choose() function is used to construct a new array by picking elements from multiple input arrays based on the indices provided in a selector array. This function provides a way to combine or select data from several arrays in a flexible manner.

The choose() function works by interpreting the elements of the selector array as indices into the list of input arrays. It creates an output array where each element corresponds to the value from the input array specified by the selector array at the same position.

Syntax

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

numpy.choose(a, choices, out=None, mode='raise')  

Parameters

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

  • a: An array of integers (selector array), where each value specifies which input array to select elements from.
  • choices: A sequence of arrays from which the output array will be constructed. All arrays must have the same shape as the selector array or be broadcastable to the same shape.
  • 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 in the selector array are handled. Options are −
  • raise: Raises an error (default).
  • wrap: Wraps around to valid indices.
  • clip: Clips to the range of valid indices.

Return Type

This function returns an array containing elements selected from the input arrays based on the selector array.

Example

Following is a basic example to select elements from two arrays using the Numpy choose() function −

import numpy as np  
selector = np.array([0, 1, 0, 1])  
choices = [np.array([10, 20, 30, 40]), np.array([50, 60, 70, 80])]  
result = np.choose(selector, choices)  
print("Resulting Array:", result)  

Output

Following is the output of the above code −

Resulting Array: [10 60 30 80]  

Example: Broadcasting the Selector Array

The selector array can be broadcasted to match the shape of the input arrays. In the following example, a 1D selector array is used with 2D input arrays, and broadcasting ensures proper selection −

import numpy as np  
selector = np.array([0, 1])  
choices = [np.array([[10, 20], [30, 40]]), np.array([[50, 60], [70, 80]])]  
result = np.choose(selector, choices)  
print("Resulting Array:\n", result)  

Output

Following is the output of the above code −

Resulting Array:  
[[10 60]  
 [30 80]]  

Example: Using the Mode Parameter

The mode parameter in the choose() function controls how out-of-bounds values in the selector array are handled. When set to clip, any out-of-bounds indices are clipped to the range of valid indices. In the following example, an out-of-bounds index is clipped −

import numpy as np  
selector = np.array([[0, 1],[ 2, 3]])  
choices = [np.array([10, 20]), np.array([30, 40]), np.array([50, 60])]  
result = np.choose(selector, choices, mode='clip')  
print("Resulting Array:\n", result)  

Output

Following is the output of the above code −

Resulting Array:
 [[10 40]
 [50 60]]
numpy_array_manipulation.htm
Advertisements