Assegnazione di Valori a Sottoarray Indicizzati
Con gli array indicizzati, le cose diventano più interessanti. Qui ci concentreremo su sottoarray 1D e 2D, poiché i sottoarray 3D sono raramente utilizzati nella pratica.
Iniziamo assegnando valori alle 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 per values:
- un singolo scalare (numero);
- un array 1D della stessa dimensione della slice (se è 1D); oppure della dimensione della seconda dimensione (se la slice è 2D);
- un array 2D della stessa forma di una slice 2D.
123456789101112131415161718import 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 si assegna 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. L'assegnazione di uno scalare a una slice 2D funziona allo stesso modo che con una slice 1D.
L'assegnazione di valori a sottoarray indicizzati tramite array di interi funziona allo stesso modo delle slice. L'assegnazione di valori a sottoarray indicizzati tramite array booleani funziona allo stesso modo delle slice 1D.
Swipe to start coding
Gestisci un dataset di prezzi e valutazioni dei prodotti. I prezzi sono memorizzati nell'array prices, mentre le valutazioni (su 10) sono memorizzate nell'array ratings, dove ogni riga rappresenta una categoria di prodotto diversa. Il tuo compito è aggiornare i prezzi e le valutazioni in base a criteri specifici:
- Assegna il valore
20a ogni elemento dipricesmaggiore di 10 (indicizzazione booleana) utilizzando uno scalare. - Assegna un array NumPy con elementi
9,8agli ultimi due elementi della seconda riga (secondo array 1D) diratings. Usa un indice di riga positivo e uno slice specificando solostart(indice positivo).
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain what happens if the shapes of the assigned values and the slice don't match?
Can you show more examples of assigning values to slices using boolean indexing?
What is the difference between assigning a 1D array and a 2D array to a 2D slice?
Fantastico!
Completion tasso migliorato a 3.85
Assegnazione di Valori a Sottoarray Indicizzati
Scorri per mostrare il menu
Con gli array indicizzati, le cose diventano più interessanti. Qui ci concentreremo su sottoarray 1D e 2D, poiché i sottoarray 3D sono raramente utilizzati nella pratica.
Iniziamo assegnando valori alle 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 per values:
- un singolo scalare (numero);
- un array 1D della stessa dimensione della slice (se è 1D); oppure della dimensione della seconda dimensione (se la slice è 2D);
- un array 2D della stessa forma di una slice 2D.
123456789101112131415161718import 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 si assegna 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. L'assegnazione di uno scalare a una slice 2D funziona allo stesso modo che con una slice 1D.
L'assegnazione di valori a sottoarray indicizzati tramite array di interi funziona allo stesso modo delle slice. L'assegnazione di valori a sottoarray indicizzati tramite array booleani funziona allo stesso modo delle slice 1D.
Swipe to start coding
Gestisci un dataset di prezzi e valutazioni dei prodotti. I prezzi sono memorizzati nell'array prices, mentre le valutazioni (su 10) sono memorizzate nell'array ratings, dove ogni riga rappresenta una categoria di prodotto diversa. Il tuo compito è aggiornare i prezzi e le valutazioni in base a criteri specifici:
- Assegna il valore
20a ogni elemento dipricesmaggiore di 10 (indicizzazione booleana) utilizzando uno scalare. - Assegna un array NumPy con elementi
9,8agli ultimi due elementi della seconda riga (secondo array 1D) diratings. Usa un indice di riga positivo e uno slice specificando solostart(indice positivo).
Soluzione
Grazie per i tuoi commenti!
single