Heim >Backend-Entwicklung >Python-Tutorial >Indizieren Sie mehrere Elemente in einem mehrdimensionalen Numpy-Array

Indizieren Sie mehrere Elemente in einem mehrdimensionalen Numpy-Array

王林
王林nach vorne
2024-02-22 14:00:061030Durchsuche

索引多维 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)

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen