Zuweisung von Werten zu Indizierten Teilarrays
Mit indizierten Arrays wird es interessanter. Hier konzentrieren wir uns auf 1D- und 2D-Teilarrays, da 3D-Teilarrays in der Praxis selten verwendet werden.
Beginnen wir zunächst mit der Zuweisung von Werten zu Slices. Die allgemeine Syntax sieht so aus: slice = values
, wobei slice
ein Slice eines bestimmten Arrays ist und values
die zuzuweisenden Werte sind.
Mögliche Formate von values
:
ein einzelner Skalar (Zahl);
ein 1D-Array der gleichen Größe wie das Slice (wenn es 1D ist); oder die Größe der zweiten Dimension (wenn das Slice 2D ist);
ein 2D-Array der gleichen Form wie ein 2D-Slice.
import numpy as np array_1d = np.array([1, 4, 6, 2, 9]) # Assigning an array to the slice of array_1d array_1d[1:-1] = np.array([3, 5, 7]) print(array_1d) # Assigning a scalar to the slice of array_1d array_1d[1:-1] = 5 print(array_1d) array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) # Assigning a 2D array to the slice of array_2d array_2d[1:3, 1:] = np.array([[20, 21], [40, 41]]) print(array_2d) # Assigning a 1D array to the slice of array_2d array_2d[1:3, 1:] = [50, 51] print(array_2d) # Assigning a scalar to the slice of array_2d array_2d[1:3, 1:] = 30 print(array_2d)
Wenn wir einem Skalar einem 1D-Slice zuweisen, wird dieser Skalar jedem Element des Slices zugewiesen. Wenn ein 1D-Array einem 2D-Slice zugewiesen wird, wird dieses 1D-Array jedem 1D-Array im Slice zugewiesen. Die Zuweisung eines Skalars zu einem 2D-Slice funktioniert genauso wie bei einem 1D-Slice.
Die Zuweisung von Werten zu ganzzahligen array-indizierten Teilarrays funktioniert genauso wie bei Slices. Die Zuweisung von Werten zu booleschen indizierten Teilarrays funktioniert genauso wie bei 1D-Slices.
Swipe to start coding
Sie verwalten einen Datensatz von Produktpreisen und Bewertungen. Die Preise sind im prices
-Array gespeichert, und die Bewertungen (von 10) sind im ratings
-Array gespeichert, wobei jede Zeile eine andere Produktkategorie darstellt. Ihre Aufgabe ist es, die Preise und Bewertungen basierend auf bestimmten Kriterien zu aktualisieren:
- Weisen Sie den Wert
20
jedem Element inprices
zu, das größer als 10 ist (boolesche Indizierung) unter Verwendung eines Skalars. - Weisen Sie ein NumPy-Array mit den Elementen
9
,8
den letzten beiden Elementen der zweiten Zeile (zweites 1D-Array) vonratings
zu. Verwenden Sie einen positiven Zeilenindex und einen Slice, der nurstart
(positiver Index) angibt.
Lösung
Danke für Ihr Feedback!