NumPy-Slicing und Indexierung

Auf die Inhalte eines ndarray-Objekts kann durch Indizierung oder Slicing zugegriffen werden, und sie können geändert werden, genau wie bei den Slicing-Operationen von Listen in Python.

ndarray-Arrays können anhand von Indizes von 0 bis n indiziert werden. Slicing-Objekte können über die integrierte slice-Funktion erstellt werden, und durch Festlegen der Parameter start, stop und step kann ein neues Array aus dem ursprünglichen Array ausgeschnitten werden.

Beispiel

import numpy as np a = np.arange(10) s = slice(2,7,2) # Von Index 2 bis Index 7, mit Schrittweite 2 print (a[s])

Das Ausgabeergebnis ist:

[2  4  6]

Im obigen Beispiel haben wir zuerst mithilfe der Funktion arange() ein ndarray-Objekt erstellt. Dann haben wir die Parameter start, stop und step auf 2, 7 bzw. 2 gesetzt.

Wir können auch durch Doppelpunkte getrennte Slice-Parameterstart:stop:stepverwenden, um Slicing-Operationen durchzuführen:

Beispiel

import numpy as np a = np.arange(10) b = a[2:7:2] # Von Index 2 bis Index 7, mit Schrittweite 2 print(b)

Das Ausgabeergebnis ist:

[2  4  6]

Doppelpunkt:Die Erklärung: Wenn nur ein Parameter angegeben wird, wie z. B.[2], wird das einzelne Element zurückgegeben, das diesem Index entspricht. Wenn es[2:]ist, bedeutet das, dass alle Elemente ab diesem Index extrahiert werden. Wenn zwei Parameter verwendet werden, wie z. B.[2:7], dann werden die Elemente zwischen den beiden Indizes (ohne den Stop-Index) extrahiert.

Beispiel

import numpy as np a = np.arange(10) # [0 1 2 3 4 5 6 7 8 9] b = a[5] print(b)

Das Ausgabeergebnis ist:

5

Beispiel

import numpy as np a = np.arange(10) print(a[2:])

Das Ausgabeergebnis ist:

[2  3  4  5  6  7  8  9]

Beispiel

import numpy as np a = np.arange(10) # [0 1 2 3 4 5 6 7 8 9] print(a[2:5])

Das Ausgabeergebnis ist:

[2  3  4]

Auf mehrdimensionale Arrays wird ebenfalls dasselbe Indexierungs- und Extraktionsverfahren wie oben angewendet:

Beispiel

import numpy as np a = np.array([[1,2,3],[3,4,5],[4,5,6]]) print(a) # Slicing ab einem bestimmten Index print('Slicing ab Array-Index a[1:] beginnen') print(a[1:])

Das Ausgabeergebnis ist:

[[1 2 3]
 [3 4 5]
 [4 5 6]]
从数组索引 a[1:] 处开始切割
[[3 4 5]
 [4 5 6]]

Slicing kann auch eine Ellipse enthalten…, um die Länge des Auswahl-Tupels an die Dimension des Arrays anzupassen. Wenn eine Ellipse an der Zeilenposition verwendet wird, gibt sie ein ndarray zurück, das die Elemente in der Zeile enthält.

Beispiel

import numpy as np a = np.array([[1,2,3],[3,4,5],[4,5,6]]) print (a[...,1]) # Element in der 2. Spalte print (a[1,...]) # Element in der 2. Zeile print (a[...,1:]) # Die 2. Spalte und alle verbleibenden Elemente

Das Ausgabeergebnis ist:

[2 4 5]
[3 4 5]
[[2 3]
 [4 5]
 [5 6]]
Andere Erweiterungen