Python Numpy.where() Função

Sohaib Atiq 30 janeiro 2023
  1. Sintaxe de numpy.where()
  2. Códigos de exemplo: numpy.where() Sem [X, Y]
  3. Códigos de exemplo: numpy.where() Com a matriz 1-D
  4. Códigos de exemplo: numpy.where() Com a matriz 2-D
  5. Códigos de exemplo: numpy.where() Com múltiplas condições
Python Numpy.where() Função

A função Numpy.where() gera os índices do array que satisfazem a condição de entrada, se x, y não forem dados; ou os elementos do array de x ou y com base na condição dada.

Sintaxe de numpy.where()

numpy.where(condition, [x, y])

Parâmetros

condition array_like, True or False
Se a condição for True, a saída contém elemento de x, caso contrário, a saída contém elemento de y.
x,y matriz a partir da qual o retorno gera
Passar ambos (x, y) ou nenhum.

Retorno

Ele retorna uma array. Se a condição for True, o resultado contém elementos de x, e se a condição for False, o resultado contém elementos de y.

Ele retorna índices do array é x, y não são dados.

Códigos de exemplo: numpy.where() Sem [X, Y]

import numpy as np

m = np.array([1, 2, 3, 4, 5])

n = np.where(m > 3)

print(n)

Resultado:

(array([3, 4], dtype=int64),)

Retorna os índices de m, onde seu elemento é maior que 3 - a > 3.

Se você precisar do elemento ao invés dos índices,

Códigos de exemplo: numpy.where() Com a matriz 1-D

import numpy as np

m = np.where([True, False, True], [1,2,3], [4, 5, 6])

print(m)

Resultado:

[1 5 3]

Quando a condição é um array 1-D, Numpy.where() função itera sobre a matriz de condições, e escolhe o elemento de x se o elemento de condição for True, ou o elemento de y se o elemento de condição é False.

Numípico onde a matriz 1-D

Códigos de exemplo: numpy.where() Com a matriz 2-D

import numpy as np

x = np.array([[10, 20, 30], [3, 50, 5]])
y = np.array([[70, 80, 90], [100, 110, 120]])
condition = np.where(x > 20, x, y)

print("Input array :")
print(x)
print(y)
print("Output array with condition applied:")
print(condition)

Resultado:

Input array :
[[10 20 30]
[ 3 50  5]]
[[ 70  80  90]
[100 110 120]]
Output array with condition applied:
[[ 70  80  30]
[100  50 120]]

Aplica a condição de x>20 a todos os elementos de x, se for Verdade, então o elemento de x rende como saída, e se for False, rende o elemento de y.

Fazemos um exemplo simplificado para mostrar como funciona.

import numpy as np

m = np.where(
    [[True, False, True], [False, True, False]],
    [[1, 2, 3], [4, 5, 6]],
    [[7, 8, 9], [10, 11, 12]],
)

print(m)

Resultado:

[[ 1  8  3]
 [10  5 12]]

Numípico onde a matriz 1-D

Códigos de exemplo: numpy.where() Com múltiplas condições

Poderíamos também aplicar duas ou múltiplas condições na função numpy.where().

import numpy as np

m = np.array([1, 2, 3, 4, 5])

n = np.where((m > 1) & (m < 5), m, 0)

print(n)

Resultado:

[0 2 3 4 0]

Aplica as condições múltiplas, m > 1' e m < 5’, e devolve o elemento se o elemento satisfizer ambas as condições.

A lógica entre as condições múltiplas não está limitada a AND (&), mas OR (|) também é aceita.

import numpy as np

m = np.array([1, 2, 3, 4, 5])

n = np.where((m < 2) | (m > 4), m, 0)

print(n)

Resultado:

[1 0 0 0 5]