Heim > Backend-Entwicklung > Python-Tutorial > Wie wählt man effizient bestimmte Spaltenindizes pro Zeile in NumPy-Arrays aus?

Wie wählt man effizient bestimmte Spaltenindizes pro Zeile in NumPy-Arrays aus?

Linda Hamilton
Freigeben: 2024-10-30 21:51:30
Original
342 Leute haben es durchsucht

How to Efficiently Select Specific Column Indexes per Row in NumPy Arrays?

Effiziente Auswahl spezifischer Spaltenindizes pro Zeile in NumPy-Arrays

Bei der Arbeit mit NumPy-Matrizen kann es zu Situationen kommen, in denen Sie bestimmte Spaltenindizes extrahieren müssen Spalten pro Zeile basierend auf einer Liste von Indizes. Die Verwendung herkömmlicher Iterationsmethoden kann bei großen Datensätzen ineffizient sein. Um dieses Problem anzugehen, erkunden Sie alternative Lösungen zur Optimierung der Leistung.

Ein Ansatz beinhaltet die direkte Auswahl mithilfe eines booleschen Arrays. Betrachten Sie eine boolesche Matrix b mit derselben Form wie Ihre ursprüngliche Matrix a. Jede Spalte in b stellt eine Bedingung dar, die angibt, ob diese Spalte aus a ausgewählt werden soll. Durch die Nutzung der booleschen Indizierung können Sie die gewünschten Spaltenwerte direkt aus a[b] abrufen.

Zum Beispiel bei einer gegebenen Matrix a und einem booleschen Array b:

<code class="python">a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([[False, True, False], [True, False, False], [False, False, True]])</code>
Nach dem Login kopieren

Sie können Folgendes ausführen Direktauswahl:

<code class="python">result = a[b]</code>
Nach dem Login kopieren

Dieser Vorgang führt zur folgenden Ausgabe:

<code class="python">[2, 4, 9]</code>
Nach dem Login kopieren

Alternativ können Sie np.arange verwenden, um ein Indexarray zu erstellen und eine Direktauswahl darauf durchzuführen. Abhängig von der Logik Ihrer booleschen Array-Generierung bietet diese Methode möglicherweise Leistungsvorteile.

<code class="python">result = a[np.arange(len(a)), [1, 0, 2]]</code>
Nach dem Login kopieren

Dieser Ansatz erzeugt die gleiche Ausgabe wie die boolesche Array-Lösung.

Durch die Nutzung dieser optimierten Auswahltechniken können Sie die Effizienz beim Extrahieren spezifischer Spaltenindizes pro Zeile aus großen NumPy-Arrays erheblich verbessern.

Das obige ist der detaillierte Inhalt vonWie wählt man effizient bestimmte Spaltenindizes pro Zeile in NumPy-Arrays aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage