numpy - 2d-array-Indizierung
Laut docs numpy ' s Standard-Verhalten ist die index-arrays ersten Zeilen dann durch Spalten:
a = numpy.arange(6).reshape(3,2)
[[0 1]
[2 3]
[4 5]]
print a[0][1] # is 1
Möchte ich den index des Arrays mit dem geometrisch orientierten-Konvention a[x][y]
, als in der x-Achse und y-Achse. Wie kann ich die Indizierung, um ohne änderung das array so gestalten, dass a[0][1]
zurückkehren würde 2?
- Ich habe mir die Terminologie aus der Doku (siehe link): "Matrix-notation verwendet der erste index, um anzuzeigen, welche Zeile ausgewählt wird und der zweite index angeben, welche Spalte ausgewählt ist. Dies ist gegenüber dem geometrisch orientierten-Konvention für die Bilder, wo die Menschen im Allgemeinen denken, der erste index repräsentiert die x-position (d.h., Spalte), und die zweite repräsentiert die y-position (d.h., row)"
- Upps, war etwas anderes nachdenken.
- Nur als Hinweis, wenn die Indizierung mehrdimensionaler arrays sollten Sie verwenden die notation a[i,j] anstelle von a[i][j]. Ich finde auf meinem Rechner, dass das später ist 2x langsamer.
- Danke für den Tipp. Es sieht mehr lesbar auch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schreiben Sie
a.T[0,1]
zu verwenden Indizes der transponieren des Arrays, die den anderen Weg um in 2D..T
schafft nur ein Blick auf das original-array, so dass Sie die Daten nicht kopiert. Es sollte relativ schnell sein.