NumPy- Such-Arrays


Durchsuchen von Arrays

Sie können ein Array nach einem bestimmten Wert durchsuchen und die übereinstimmenden Indizes zurückgeben.

Um ein Array zu durchsuchen, verwenden Sie die where()Methode.

Beispiel

Finden Sie die Indizes, bei denen der Wert 4 ist:

import numpy as np

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

x = np.where(arr == 4)

print(x)

Das obige Beispiel gibt ein Tupel zurück:(array([3, 5, 6],)

Das bedeutet, dass bei Index 3, 5 und 6 der Wert 4 vorhanden ist.

Beispiel

Finden Sie die Indizes, bei denen die Werte gerade sind:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])

x = np.where(arr%2 == 0)

print(x)

Beispiel

Finden Sie die Indizes, bei denen die Werte ungerade sind:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])

x = np.where(arr%2 == 1)

print(x)


Suche sortiert

Es wird eine Methode aufgerufen searchsorted(), die eine binäre Suche im Array durchführt und den Index zurückgibt, wo der angegebene Wert eingefügt würde, um die Suchreihenfolge beizubehalten.

Es searchsorted()wird davon ausgegangen, dass die Methode für sortierte Arrays verwendet wird.

Beispiel

Suchen Sie die Indizes, in die der Wert 7 eingefügt werden soll:

import numpy as np

arr = np.array([6, 7, 8, 9])

x = np.searchsorted(arr, 7)

print(x)

Beispiel erklärt: Die Zahl 7 soll auf Index 1 eingefügt werden, damit die Sortierreihenfolge erhalten bleibt.

Die Methode beginnt die Suche von links und gibt den ersten Index zurück, bei dem die Zahl 7 nicht mehr größer ist als der nächste Wert.

Suche von der rechten Seite

Standardmäßig wird der Index ganz links zurückgegeben, aber wir können side='right'stattdessen den Index ganz rechts zurückgeben.

Beispiel

Suchen Sie die Indizes, in die der Wert 7 eingefügt werden soll, beginnend von rechts:

import numpy as np

arr = np.array([6, 7, 8, 9])

x = np.searchsorted(arr, 7, side='right')

print(x)

Beispiel erklärt: Die Zahl 7 soll auf Index 2 eingefügt werden, damit die Sortierreihenfolge erhalten bleibt.

Die Methode beginnt die Suche von rechts und gibt den ersten Index zurück, bei dem die Zahl 7 nicht mehr kleiner als der nächste Wert ist.

Mehrere Werte

Um nach mehr als einem Wert zu suchen, verwenden Sie ein Array mit den angegebenen Werten.

Beispiel

Suchen Sie die Indizes, in die die Werte 2, 4 und 6 eingefügt werden sollen:

import numpy as np

arr = np.array([1, 3, 5, 7])

x = np.searchsorted(arr, [2, 4, 6])

print(x)

Der Rückgabewert ist ein Array: [1 2 3]enthält die drei Indizes, wobei 2, 4, 6 in das ursprüngliche Array eingefügt würden, um die Reihenfolge beizubehalten.


Testen Sie sich mit Übungen

Übung:

Verwenden Sie die richtige NumPy-Methode, um alle Elemente mit dem Wert 4 zu finden.

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

x = np.(arr == 4)