= np.array([1, 2, 3, 4, 5, 6]) liste
5 Slicing
5.1 Normales Slicing mit Zahlenwerten

Möchte man jetzt Daten innerhalb eines Arrays auswählen so geschieht das in der Form:
- [a] wobei ein einzelner Wert an Position a ausgegeben wird
- [a:b] wobei alle Werte von Position a bis Position b-1 ausgegeben werden
- [a:b:c] wobei die Werte von Position a bis Position b-1 mit einer Schrittweite von c ausgegeben werden
# Auswählen des ersten Elements
0] liste[
np.int64(1)
# Auswählen des letzen Elements
-1] liste[
np.int64(6)
# Auswählen einer Reihe von Elementen
1:4] liste[
array([2, 3, 4])
Für zwei-dimensionale Arrays wählt man getrennt durch ein Komma mit einer zweiten Zahl die zweite Dimension aus.
= np.array([[1, 2, 3], [4, 5, 6]]) matrix
# Auswählen einer Elements
1,1] matrix[
np.int64(5)
Für drei-dimensionale Arrays wählt man getrennt durch ein Komma mit einer weiteren Zahl die dritte Dimension aus. Dabei wird dieses jedoch an die erste Stelle gesetzt.
= np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
matrix_3d print(matrix_3d)
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]]
# Auswählen eines Elements
1,0,2] matrix_3d[
np.int64(9)
5.2 Slicing mit logischen Werten (Boolesche Masken)
Beim logischen Slicing wird eine boolesche Maske verwendet, um bestimmte Elemente eines Arrays auszuwählen. Die Maske ist ein Array gleicher Länge wie das Original, das aus True
oder False
Werten besteht.
# Erstellen wir ein Beispiel Array
= np.array([1, 2, 3, 4, 5, 6])
a
# Erstellen der Maske
= a > 3
maske
print(maske)
[False False False True True True]
Wir erhalten also ein Array mit boolschen Werten. Verwenden wir diese Maske nun zum slicen, erhalten wir alle Werte an den Stellen, an denen die Maske den Wert True
besitzt.
# Anwenden der Maske
print(a[maske])
[4 5 6]
Das Verwenden von booleschen Arrays ist nur im numpy-Modul möglich. Es ist nicht Möglich dieses Vorgehen auf native Python Listen anzuwenden. Hier muss durch die Liste iterriert werden.
= [1, 2, 3, 4, 5, 6]
a = [x for x in a if x > 3]
ergebniss print(ergebniss)
[4, 5, 6]
Wählen Sie die farblich markierten Bereiche aus dem Array “matrix” mit den eben gelernten Möglichkeiten des Array-Slicing aus.
= np.array([
matrix 2, 11, 18, 47, 33, 48, 9, 31, 8, 41],
[55, 1, 8, 3, 91, 56, 17, 54, 23, 12],
[19, 99, 56, 72, 6, 13, 34, 16, 77, 56],
[37, 75, 67, 5, 46, 98, 57, 19, 14, 7],
[4, 57, 32, 78, 56, 12, 43, 61, 3, 88],
[96, 16, 92, 18, 50, 90, 35, 15, 36, 97],
[75, 4, 38, 53, 1, 79, 56, 73, 45, 56],
[15, 76, 11, 93, 87, 8, 2, 58, 86, 94],
[51, 14, 60, 57, 74, 42, 59, 71, 88, 52],
[49, 6, 43, 39, 17, 18, 95, 6, 44, 75]
[ ])