Ich bin mir ziemlich sicher, dass ich etwas mit ganzzahliger Indizierung vermisse und könnte etwas Hilfe verwenden. Sagen, dass ich einen 2D-Array zu erstellen:Numpy Array Integer-Indizierung in mehr als einer Dimension
>>> import numpy as np
>>> x=np.array(range(24)).reshape((4,6))
>>> x
array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]])
I kann dann wählen, Reihe 1 und 2 mit:
>>> x[[1,2],:]
array([[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17]])
oder die Spalte 1 der Zeilen 2 und 3 mit:
>>> x[[1,2],1]
array([ 7, 13])
Es würde also für mich Sinn machen, dass ich damit die Spalten 3, 4 und 5 der Zeilen 1 und 2 auswählen kann:
>>> x[[1,2],[3,4,5]]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: shape mismatch: objects cannot be broadcast to a single shape
Und stattdessen muss ich es in zwei Schritten vor:
>>> a=x[[1,2],:]
>>> a
array([[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17]])
>>> a[:,[3,4,5]]
array([[ 9, 10, 11],
[15, 16, 17]])
von R kommend, meine Erwartungen scheinen falsch zu sein. Können Sie bestätigen, dass dies in einem Schritt nicht möglich ist oder eine bessere Alternative vorschlagen? Vielen Dank!
BEARBEITEN: Bitte beachten Sie, dass meine Auswahl der Zeilen und Spalten im Beispiel konsekutiv ist, aber das muss nicht sein. Mit anderen Worten, die Indizierung von Schnitten reicht für meinen Fall nicht aus.
Richtig Sie sind, dass Zwischenkopie mich wirklich nervte. Thans viel! – Miquel
nett; Ich war mir dessen nicht bewusst! –
Ich verirre mich in Klammern Treibsand ... –