Heim  >  Artikel  >  Backend-Entwicklung  >  Implementieren Sie das ndarray-Array in Numpy, um eine Indexmethode zurückzugeben, die bestimmte Bedingungen erfüllt

Implementieren Sie das ndarray-Array in Numpy, um eine Indexmethode zurückzugeben, die bestimmte Bedingungen erfüllt

不言
不言Original
2018-04-17 10:46:575423Durchsuche

Der folgende Artikel wird mit Ihnen einen Artikel in Numpy teilen, der ein Ndarray-Array implementiert, um einen Index zurückzugeben, der bestimmte Bedingungen erfüllt. Es hat einen guten Referenzwert und ich hoffe, dass es für alle hilfreich ist. Schauen wir uns das gemeinsam an

Im ndarray-Typ von Numpy scheint es keine Methode zu geben, um einen bestimmten Index direkt zurückzugeben. Ich habe nur die Funktion „Where“ gefunden, aber die Funktion „Where“ ist sehr nützlich, um den entsprechenden Index zu finden Die Rückgabe eines Werteindex innerhalb eines bestimmten Bereichs ist nicht sehr effizient, zumindest verstehe ich nicht, wie das geht. Lassen Sie uns zunächst über die Verwendung der Where-Funktion sprechen.

(1) Verwendungsszenarien der Where-Funktion:

Zum Beispiel habe ich jetzt ein Array generiert:

import numpy as np 
arr=np.array([1,1,1,134,45,3,46,45,65,3,23424,234,12,12,3,546,1,2])

Arr ist nun ein Array vom Typ ndarray, das 18 Elemente enthält. Nennen wir es später Array. Wenn ich die Indexposition aller Elemente im Array mit dem Wert 3 zurückgeben möchte, kann dies einfach über die Funktion „where“ erreicht werden.

print np.where(arr==3)

Es wird ein Tupel zurückgegeben, das alle Indexpositionen enthält, die dem Wert 3 entsprechen, wie unten gezeigt:

Sie können sehen, dass der entsprechende Elementwert an den Indizes 5, 9 und 14 3 ist. So können Sie Ihr Ziel ganz einfach erreichen. Dies funktioniert jedoch nicht für Indizes innerhalb eines bestimmten Änderungsbereichs. Die folgende Methode ist ein Kompromiss, den ich mir ausgedacht habe. Sie ist relativ dumm, aber der Meister kann es klären.

(2) Verwenden Sie ein Hilfsarray, um die Suche nach Wertindizes innerhalb eines bestimmten Bereichs zu lösen

Wir erstellen ein Array, das das Element identifiziert IndexVerwenden Sie es dann, um den Index anzuzeigen, der dem Element entspricht, das die Bedingungen erfüllt. Es ist immer noch das gleiche Array, wenn ich jetzt den Index des Elementwerts zwischen 3 und 100 zurückgeben möchte. Ich kann ein Array mit der gleichen Größe wie arr generieren und es dann zuerst einmal filtern, um das Array zu finden, das dem Index des Elements größer als 3 entspricht, und es dann erneut filtern und schließlich das gewünschte Ergebnis erhalten. Der Code lautet wie folgt:

b=np.arange(len(arr))#生成和arr相同长度的数组

c=b[arr>3]#c存放的就是arr中大于3的元素对应的索引 
#最后通过遍历c数组,选择3到100之间的值打印出来 
for i in range(len(c)): 
 if arr[c[i]]<100: 
  print c[i],

Werfen wir einen Blick darauf Die Auswirkung der Ausführung:

Sie können sehen, dass das Programm die Indexwerte ausgibt, die allen Elementen zwischen 3 und 100 entsprechen. Wenn Sie möchten Geben Sie gleichzeitig den Indexwert und das entsprechende Element ein. Ersetzen Sie einfach das obige „print c[i]“ durch „print c[i],arr[c[i]]“.

Natürlich eignet sich diese Methode auch zur Auswahl des Index, der einem bestimmten Wert entspricht. Wenn ich beispielsweise alle Positionen finden möchte, die 3 entsprechen, kann ich print b[arr==3] verwenden Gibt alle Werte aus, die 3 sind. Der Index, der dem Element entspricht. Unabhängig davon, wie Sie es tun, verwenden Sie ein Array, um relationale Operationen auszuführen, um ein boolesches Array zu generieren, und zeigen dann die Bereiche an, die im Array wahr sind.

Natürlich können Sie auch zweimal filtern, um die Indexarrays herauszufiltern, die Elementen größer als 3 und Elementen kleiner als 100 entsprechen, und dann eine Schnittmengenverarbeitung für die beiden Arrays durchführen. In numpy gibt es eine intersect1d-Funktion kann diesen Vorgang ausführen, ist aber immer noch mühsam. Mir fallen derzeit nur diese Methoden ein. Ich weiß nicht, ob ein Experte eine bessere Methode hat.

Verwandte Empfehlungen:

Verwandte Empfehlungen:

So zeigen Sie Numpy-Array-Attribute in der Python3-Bibliothek an

So konvertieren Sie Numpy und Array in Python


Das obige ist der detaillierte Inhalt vonImplementieren Sie das ndarray-Array in Numpy, um eine Indexmethode zurückzugeben, die bestimmte Bedingungen erfüllt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn