Assegnare Valori a Sottoarray Indicizzati
Con gli array indicizzati, le cose iniziano a diventare più interessanti. Qui ci concentreremo su sottoarray 1D e 2D, poiché i sottoarray 3D sono raramente utilizzati nella pratica.
Iniziamo prima con l'assegnazione di valori agli slice. La sintassi generale è la seguente: slice = values
, dove slice
è una porzione di un certo array e values
sono i valori da assegnare.
Formati possibili di values
:
un singolo scalare (numero);
un array 1D della stessa dimensione dello slice (se è 1D); o della dimensione della seconda dimensione (se lo slice è 2D);
un array 2D della stessa forma di uno slice 2D.
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)
Quando assegniamo uno scalare a una slice 1D, questo scalare viene assegnato a ogni elemento della slice. Quando un array 1D viene assegnato a una slice 2D, questo array 1D viene assegnato a ogni array 1D nella slice. Assegnare uno scalare a una slice 2D funziona allo stesso modo di una slice 1D.
Assegnare valori a sottoarray indicizzati con array di interi funziona allo stesso modo delle slice. Assegnare valori a sottoarray indicizzati con booleani funziona allo stesso modo delle slice 1D.
Swipe to start coding
Stai gestendo un dataset di prezzi e valutazioni di prodotti. I prezzi sono memorizzati nell'array prices
, e le valutazioni (su 10) sono memorizzate nell'array ratings
, dove ogni riga rappresenta una diversa categoria di prodotto. Il tuo compito è aggiornare i prezzi e le valutazioni in base a criteri specifici:
- Assegna il valore
20
a ogni elemento inprices
maggiore di 10 (indicizzazione booleana) usando uno scalare. - Assegna un array NumPy con elementi
9
,8
agli ultimi due elementi della seconda riga (secondo array 1D) diratings
. Usa un indice di riga positivo e una slice specificando solostart
(indice positivo).
Soluzione
Grazie per i tuoi commenti!