相关文章推荐
坏坏的路灯  ·  Day27 Python 基礎 - ...·  1 年前    · 
爱热闹的熊猫  ·  C++面试总结 - 知乎·  2 年前    · 

The numpy.where() method returns a new array based on a condition applied to each element of an array.

Example

import numpy as np originalArray = np.array([1, -2, -3, 4, 5]) condition = originalArray < 0 # For each element of originalArray, # if condition is True, use 0 as element in the resultant array # if condition is False, use the corresponding element in the resultant array result = np.where(condition, 0, originalArray ) print(result) # Output : [1 0 0 4 5]

where() Syntax

The syntax of where() is:

numpy.where(condition, x, y)

where() Arguments

The where() method takes three arguments:

  • condition - a boolean or an array
  • x - value to take if the condition is True
  • y - value to take if the condition is False
  • Note: We can also pass a single argument to np.where() . To learn about it, visit np.where() with a single argument section below.

    where() Return Value

    The where() method returns a new NumPy array.

    Example 1: numpy.where() With Two Arrays

    import numpy as np x = np.array([1, 2, 3, 4]) y = np.array([10, 20, 30, 40]) test_condition = x < 3
    # if test_condition is True, select element of x # if test_condition is False, select element of y result = np.where(test_condition, x, y)
    print(result)

    Output

    [1 2 30 40]

    Example 2: numpy.where() with Operation

    # if test_condition is True, select element of x # if test_condition is False, select x * -1 result = np.where(test_condition, x, x * -1)
    print(result)

    Output

    [1 2 3 4]

    Example 3: where() with Array Condition

    We can use array_like objects (such as lists, arrays etc.) as a condition in the where() method.

    import numpy as np x = np.array([[1, 2], [3, 4]]) y = np.array([[-1, -2], [-3, -4]])
    # returns element of x when True # returns element of y when False result = np.where([[True, True], [False, False]], x, y)
    print(result)
    # returns element of x when True # returns element of y when False result = np.where([[True, False], [False, True]], x, y) print(result)

    Output

    [[1 2] [-3 -4]] [[1 -2] [-3 4]]

    Example 4: where() with Multiple Conditions

    The test condition in a where() method may have multiple conditions.

    We use

  • the | operator to perform OR operation on multiple conditions
  • the & operator to perform AND operation on multiple conditions
  • import numpy as np x = np.array([1, 2, 3, 4, 5, 6, 7])
    # if element is less than 2 or greater than 6, test condition is True test_condition1 = (x < 2) | (x > 6)
    # select element of x if test condition is True # select 0 if test condition is False result1 = np.where(test_condition1, x, 0) print(result1)
    # if element is greater than 2 and less than 6, test condition is True test_condition2 = (x > 2) & (x < 6)
    # select element of x if test condition is True # select 0 if test condition is False result2 = np.where(test_condition2, x, 0) print(result2)

    Output

    [1 0 0 0 0 0 7] [0 0 3 4 5 0 0]

    Example 5: where() with Only One Argument

    If we pass a single argument ( test condition ) to numpy.where() , it tells us where in a given array the given condition is met by returning the indices.

    import numpy as np originalArray = np.array([0, 10, 20, 30, 40, 50, 60, 70])
    # returns index of elements for which the test condition is True result = np.where(originalArray > 30)
    print(result)

    Output