Zum Hauptinhalt springen

NumPy: So finden Sie Indizes von Elementen in einem Subarray in Python

NumPy ist eine Python-Bibliothek, die viele Funktionen für das wissenschaftliche Computing bietet. Eine solche Funktion besteht darin, nach Elementindizes in einem Unterarray zu suchen. Dies ist eine sehr nützliche Aktion, mit der Sie die Position bestimmter Elemente in einem Array finden und diese Informationen in weiteren Berechnungen verwenden können.

Sie können die Funktion verwenden, um die Indizes von Elementen in einem Unterarray mithilfe von NumPy zu finden where. Diese Funktion akzeptiert eine Bedingung, die für jedes Element im Array überprüft wird, und gibt die Indizes der Elemente zurück, die diese Bedingung erfüllen. Sie können auch die Funktion verwenden argwhere, die die Indizes der Elemente zurückgibt, für die die Bedingung wahr ist.

Betrachten Sie zum Beispiel ein Array, das Zahlen zwischen 0 und 9 enthält. Wenn wir Indizes von Elementen finden möchten, die größer als 5 sind, können wir die Funktion verwenden where oder argwhere mit der Bedingung "Elemente größer als 5". Das Ergebnis ist ein Array von Indizes, das die Positionen der Elemente enthält, die diese Bedingung erfüllen.

import numpy as np


arr = np.array([0123456789])


subarr_indices = np.where(arr > 5)


print(subarr_indices)

NumPy: Wie finde ich die Indizes von Elementen in einem Unterarray in Python

Manchmal müssen wir die Indizes von Elementen in einem Unterarray finden - dies ist eine häufige Aufgabe beim Arbeiten mit Daten. Anstatt nach Elementen einzeln zu suchen, können wir NumPy verwenden, um diese Aufgabe effizienter zu erledigen.

Eine Möglichkeit, die Indizes von Elementen in einem Unterarray in NumPy zu finden, besteht darin, die Funktion zu verwenden numpy.where(). Diese Funktion gibt die Indizes der Elemente zurück, die die angegebene Bedingung erfüllen.

Um die Indizes der Elemente in einem Unterarray zu finden, können wir jedes Element im ursprünglichen Array mit den Elementen im Unterarray vergleichen. Dann mit der Funktion numpy.where(). Wir können Indizes von Elementen erhalten, die diese Bedingung erfüllen.

Im folgenden Beispielcode wird veranschaulicht, wie die Indizes von Elementen in einem Unterarray in NumPy gefunden werden:

import numpy as np# Исходный массивarr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])# Подмассивsubarr = np.array([2, 4, 6])# Находим индексы элементов в подмассиве в исходном массивеindices = np.where(np.isin(arr, subarr))# Выводим индексы элементов в подмассивеprint(indices)

Ergebnis der Codeausführung:

(array([2, 4, 6]),)

Wie aus den Ergebnissen hervorgeht, sind die Indizes der Elemente in einem Unterarray [2, 4, 6] im ursprünglichen Array [0123456789] gleicher [2, 4, 6].

Also, mit der Funktion numpy.where() wir konnten die Indizes der Elemente in einem Unterarray in NumPy effektiv finden.

Auf diese Weise können Sie die Indizes von Elementen in einem Unterarray beliebiger Länge finden und andere Vergleichsbedingungen verwenden.

Beachten Sie, dass die Indizierung in NumPy bei 0 beginnt.

Abschließend bietet NumPy praktische Werkzeuge für die Arbeit mit Arrays und ermöglicht es Ihnen, die Indizes von Elementen in einem Unterarray effizient zu finden. Dies ist besonders nützlich bei der Verarbeitung großer Datenmengen oder bei der Arbeit mit mathematischen Berechnungen.

Methoden zum Suchen von Indizes in einem Unterarray

1. Die where()-Methode

Die where() -Methode gibt die Indizes der Elemente des Subarrays zurück, die eine bestimmte Bedingung erfüllen. Sie können beispielsweise where() verwenden, um nach Indizes von Elementen zu suchen, die einen bestimmten Wert überschreiten:

import numpy as nparr = np.array([1, 2, 3, 4, 5])subarray = np.array([3, 4, 5])indices = np.where(np.in1d(arr, subarray))[0]print(indices)

Das Ergebnis dieses Beispiels lautet: [2 3 4] , was bedeutet, dass Elemente mit den Indizes 2, 3 und 4 in das Sub-Array eintreten.

2. Die nonzero() -Methode

Die nonzero() -Methode gibt die Indizes der Elemente im Unterarray zurück, die nicht null sind. Sie können diese Methode verwenden, um Indizes ungleich Null in einem Array zu finden:

import numpy as nparr = np.array([1, 0, 2, 0, 3, 0])nonzero_indices = np.nonzero(arr)[0]print(nonzero_indices)

Das Ergebnis dieses Beispiels lautet: [0 2 4] das bedeutet, dass Elemente mit den Indizes 0, 2 und 4 in das Unterarray eintreten und nicht null sind.

3. Methode argwhere()

Die argwhere() -Methode gibt die Indizes der Elemente des Subarrays zurück, die bestimmte Bedingungen erfüllen. Sie können beispielsweise argwhere() verwenden, um nach Indizes von Elementen zu suchen, die gerade Zahlen sind:

import numpy as nparr = np.array([1, 2, 3, 4, 5])subarray = np.array([2, 4])indices = np.argwhere(np.in1d(arr, subarray)).flatten()print(indices)

Das Ergebnis dieses Beispiels lautet: [1 3] das bedeutet, dass Elemente mit den Indizes 1 und 3 in das Unterarray eintreten und gerade Zahlen sind.

Dies sind nur einige der Methoden, um Indizes in einem Unterarray zu finden, die NumPy bereitstellt. Mit diesen Methoden können Sie die benötigten Elementindizes in Ihren Arrays und Untermassiven in Python leicht finden.

Wie verwende ich NumPy, um nach Indizes in einem Unterarray zu suchen

Bei der Arbeit mit Datenarrays müssen Sie häufig Indizes bestimmter Werte in einem Teilarray finden. Zum Beispiel haben wir ein Array von Zahlen und möchten die Indizes aller Elemente finden, die größer als ein bestimmter Wert sind.

Um ein solches Problem in NumPy zu lösen, können wir die where() -Funktion verwenden, die eine Bedingung als Argument akzeptiert und die Indizes der entsprechenden Elemente zurückgibt.

Hier ist ein Beispiel, das zeigt, wie man NumPy verwendet, um Indizes von Elementen zu finden, die größer als 5 sind, in einem Unterarray:

import numpy as np# Создаем массивarr = np.array([1, 6, 8, 3, 9, 4, 2, 7, 5])# Используем функцию where() для поиска индексов элементов, которые больше 5indices = np.where(arr > 5)# Выводим результатprint(indices) # (array([1, 2, 4, 7]),)

In diesem Beispiel haben wir ein arr-Array erstellt und die where() -Funktion verwendet, um nach Indizes von Elementen zu suchen, die größer als 5 sind. Das Ergebnis der Funktion ist ein Tupel mit einem einzelnen Element, das ein Array von Indizes enthält.

Die Ausgabe des Programms zeigt, dass Elemente mit den Indizes 1, 2, 4 und 7 den Elementen des arr-Arrays entsprechen, die größer als 5 sind.

Daher bietet NumPy eine bequeme Möglichkeit, die Indizes von Elementen in einem Unterarray zu finden. Bevor Sie diese Funktion verwenden, müssen Sie jedoch vorsichtig sein und sicherstellen, dass das Array korrekt indiziert ist.