Open In App

numpy.select() function - Python

Last Updated : 12 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

The numpy.select() function is used to construct an array by selecting elements from a list of choices based on multiple conditions. It is particularly useful when dealing with conditional replacements or transformations in NumPy arrays.

Example:

Python
import numpy as np
arr = np.array([10, 20, 30, 40])
conditions = [arr < 20, arr > 30]
choices = [100, 200]
result = np.select(conditions, choices, default=0)
print(result)

Syntax:

numpy.select(condlist, choicelist, default=0)

Parameters:

  • condlist : list of bool ndarrays
    A list of boolean NumPy arrays that determine from which array in choicelist the output elements are selected. If multiple conditions are True, the first one encountered is used.
  • choicelist : list of ndarrays
    A list of arrays from which the output elements are chosen. It must have the same length as condlist.
  • default : scalar, optional (default=0)
    The value inserted in the output array when none of the conditions are met.

Return Value:

  • ndarray : An array with elements chosen from choicelist based on the conditions in condlist.

Code Implementation

1. Basic Usage of numpy.select()

Here:

  • If arr < 3, the corresponding element is taken from arr.
  • If arr > 4, the corresponding element is taken from arr**3.
  • Otherwise, the default value 0 is used.
Python
import numpy as np
arr = np.arange(8)
condlist = [arr < 3, arr > 4]
choicelist = [arr, arr**3]
result = np.select(condlist, choicelist)
print(result)

Output :

[ 0 1 2 0 0 125 216 343]

2. Using a Different Default Value

Here:

  • Values where arr < 4 are taken from arr.
  • Values where arr > 6 are taken from arr**2.
  • All other values are replaced with -1 (instead of 0).
Python
arr = np.arange(8)
condlist = [arr < 4, arr > 6]
choicelist = [arr, arr**2]

# Custom default value (e.g., -1)
result = np.select(condlist, choicelist, default=-1)
print(result)

Output:

0 1 2 3 -1 -1 -1 49]

3. Handling Multiple Conditions

Here :

  • If arr is even (arr % 2 == 0), it is multiplied by 10.
  • If arr is divisible by 3 (arr % 3 == 0), it is negated.
  • If neither condition is met, the default value 100 is used.
Python
arr = np.arange(10)
condlist = [arr % 2 == 0, arr % 3 == 0]
choicelist = [arr * 10, arr * -1]

result = np.select(condlist, choicelist, default=100)
print(result)

Output:

[ 0 100 20 -3 40 100 60 100 80 -9]

Why Use numpy.select()?

  • More flexible than numpy.where() when dealing with multiple conditions.
  • Helps avoid complex nested if-else conditions in array transformations.
  • Efficient and concise for applying different transformations to an array based on conditions.

Comparison with numpy.where()

Featurenumpy.select()numpy.where()
Multiple ConditionsYesNo (only two conditions: True/False)
Custom Default ValueYesNo
SimplicityBetter for multiple rulesBetter for simple if-else

The numpy.select() function is a powerful tool for conditional selection and transformation of array elements. It is especially useful when handling multiple conditions efficiently in a structured way. Mastering its usage will help simplify complex array operations in Python.


Similar Reads

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy