Indizieren Sie mehrere Elemente in einem mehrdimensionalen Numpy-Array

王林
Freigeben: 2024-02-22 14:00:06
nach vorne
984 Leute haben es durchsucht

索引多维 numpy 数组中的多个元素

Frageninhalt

Ich möchte die Elemente eines bestimmten mehrdimensionalen Numpy-Arrays mithilfe eines anderen indizierten Arrays extrahieren. Aber es verhält sich nicht wie erwartet. Hier ist ein einfaches Beispiel:

import numpy as np

a = np.random.random((3, 3, 3))
idx = np.asarray([[0, 0, 0], [0, 1, 2]])

b = a[idx]
print(b.shape)  # expect (2, ), got (2, 3, 3, 3)
Nach dem Login kopieren

Warum passiert das? Wie soll ich den Code ändern, um b 仅包含两个元素:a[0, 0, 0]a[0, 1, 2] zu erstellen?


Richtige Antwort


Sie suchen nach Numpy Advanced Indexing

https://www.php.cn/link/2d661a763280f48803f3c9ba8ba0e00b

In Ihrem Fall müssen Sie idx auf jeder Achse verwenden:

a[idx[:,0], idx[:, 1], idx[:, 2]].shape == (2,)  # True
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonIndizieren Sie mehrere Elemente in einem mehrdimensionalen Numpy-Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!