Python Numpy.where() Funktion

Sohaib Atiq 30 Januar 2023
  1. Syntax von numpy.where()
  2. Beispiel-Codes: numpy.where() ohne [X, Y]
  3. Beispielcodes: numpy.where() mit 1-D-Array
  4. Beispielcodes: numpy.where() mit 2-D-Array
  5. Beispielcodes: numpy.where() mit mehreren Bedingungen
Python Numpy.where() Funktion

Die Funktion Numpy.where() erzeugt die Indizes des Arrays, die die Eingabebedingung erfüllen, wenn x, y nicht angegeben sind; oder die Arrayelemente von entweder x oder y auf der Grundlage der angegebenen Bedingung.

Syntax von numpy.where()

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

Parameter

condition array_like, True oder False
Wenn die Bedingung True ist, enthält die Ausgabe das Element von x, andernfalls enthält die Ausgabe das Element von y
x,y Array, aus dem der Rückgabewert
entweder beide (x, y) oder keinen übergeben.

Zurück

Es gibt ein Array zurück. Wenn die Bedingung True ist, enthält das Ergebnis Elemente von x, und wenn die Bedingung False ist, enthält das Ergebnis Elemente von y.

Es gibt die Indizes des Arrays x zurück, y sind nicht angegeben.

Beispiel-Codes: numpy.where() ohne [X, Y]

import numpy as np

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

n = np.where(m > 3)

print(n)

Ausgabe:

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

Es gibt die Indizes von m zurück, wenn sein Element größer als 3 ist - a > 3.

Wenn Sie das Element und nicht die Indizes benötigen.

Beispielcodes: numpy.where() mit 1-D-Array

import numpy as np

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

print(m)

Ausgabe:

[1 5 3]

Wenn die Bedingung ein 1-D-Array ist, iteriert die Funktion Numpy.where() über das Bedingungsarray und wählt das Element aus x, wenn das Bedingungselement True ist, oder das Element aus y, wenn das Bedingungselement False ist.

Numpy wobei 1-D-Array

Beispielcodes: numpy.where() mit 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)

Ausgabe:

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

Es wendet die Bedingung von x>20 auf alle Elemente von x an, wenn sie True ist, dann ergibt sich das Element von x als Ausgabe, und wenn sie False ist, ergibt sich das Element von y.

Wir machen ein vereinfachtes Beispiel, um zu zeigen, wie es funktioniert.

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)

Ausgabe:

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

Numpy wobei 1-D-Array

Beispielcodes: numpy.where() mit mehreren Bedingungen

Wir könnten auch zwei oder mehrere Bedingungen in der Funktion numpy.where() anwenden.

import numpy as np

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

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

print(n)

Ausgabe:

[0 2 3 4 0]

Sie wendet die Mehrfachbedingungen m > 1 und m < 5 an und gibt das Element zurück, wenn das Element beide Bedingungen erfüllt.

Die Logik zwischen den multiplen Bedingungen ist nicht auf AND (&) beschränkt, sondern es wird auch OR (|) akzeptiert.

import numpy as np

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

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

print(n)

Ausgabe:

[1 0 0 0 5]