Index mehrere, nicht nebeneinander liegende Bereiche in numpy
Ich würde gerne wählen Sie mehrere, nicht nebeneinander liegende Bereiche von einem 1d-numpy-array (oder vector).
Angenommen:
>>> idx = np.random.randint(100, size=10)
array([82, 9, 11, 94, 31, 87, 43, 77, 49, 50])
Dies funktioniert natürlich:
>>> idx[0:3]
array([82, 9, 11])
Und diese Werke zu Holen, über einzelne Indizes:
>>> idx[[0,3,4]]
array([82, 94, 31])
Aber was ist, wenn ich wählen Sie die Bereiche 0:3
, und 7:
?
Ich versucht habe:
>>> idx[[0:3,7:]]
SyntaxError: invalid syntax
Gibt es eine einfache Möglichkeit, dies zu tun, oder muss ich diese zu generieren, die separat und verketten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie verketten, entweder vor oder nach der Indizierung.
np.r_
macht es einfachnp.r_
erweitert die Scheiben und verkettet Sie.Können Sie mix-Scheiben und Listen:
Verkettung vor der Indizierung ist wahrscheinlich schneller als danach, aber für 1d-array wie dieses, ich glaube nicht, dass der Unterschied signifikant ist.