Funzione Python Numpy.where()

Sohaib Atiq 30 gennaio 2023
  1. Sintassi di numpy.where()
  2. Codici di esempio: numpy.where() Senza [X, Y]
  3. Codici di esempio: numpy.where() con array 1-D
  4. Codici di esempio: numpy.where() con 2-D Array
  5. Codici di esempio: numpy.where() con più condizioni
Funzione Python Numpy.where()

La funzione Numpy.where() genera gli indici dell’array che soddisfano la condizione di input, se x, y non sono dati; o gli elementi dell’array da x o y in base alla condizione data.

Sintassi di numpy.where()

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

Parametri

condition array_like, True o False
Se la condizione è True, l’output contiene l’elemento da x, altrimenti l’output contiene l’elemento da y
x,y array da cui viene generato il ritorno
Passa entrambi x,y o nessuno.

Ritorno

Restituisce un array. Se la condizione è True, il risultato contiene elementi di x, e se la condizione è False, il risultato contiene elementi di y.

Restituisce gli indici dell’array se x, y non sono forniti.

Codici di esempio: numpy.where() Senza [X, Y]

import numpy as np

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

n = np.where(m > 3)

print(n)

Produzione:

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

Restituisce gli indici di m, dove il suo elemento è maggiore di 3 - a > 3.

Se hai bisogno dell’elemento piuttosto che degli indici.

Codici di esempio: numpy.where() con array 1-D

import numpy as np

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

print(m)

Produzione:

[1 5 3]

Quando la condizione è un array 1-D, la funzione Numpy.where() itera sull’array della condizione e seleziona l’elemento da x se l’elemento condizione è True, o l’elemento da y se il l’elemento condizione è False.

Numpy dove array 1-D

Codici di esempio: numpy.where() con 2-D Array

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)

Produzione:

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]]

Applica la condizione di x>20 a tutti gli elementi di x, se è True, allora l’elemento di x restituisce come output, e se è False, restituisce l’elemento di y.

Facciamo un esempio semplificato per mostrare come funziona.

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)

Produzione:

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

Numpy dove array 1-D

Codici di esempio: numpy.where() con più condizioni

Potremmo anche applicare due o più condizioni nella funzione 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)

Produzione:

[0 2 3 4 0]

Applica le condizioni multiple, m > 1 e m < 5, e restituisce l’elemento se l’elemento soddisfa entrambe le condizioni.

La logica tra le condizioni multiple non è limitata a AND (&), ma è accettata anche OR (|).

import numpy as np

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

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

print(n)

Produzione:

[1 0 0 0 5]