Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Assegnazione di Valori a Sottoarray Indicizzati | Indicizzazione e Slicing
Basi di NumPy

bookAssegnazione 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.
123456789101112131415161718
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)
copy

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.

Compito

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:

  1. Assegna il valore 20 a ogni elemento di prices maggiore di 10 (indicizzazione booleana) utilizzando uno scalare.
  2. Assegna un array NumPy con elementi 9, 8 agli ultimi due elementi della seconda riga (secondo array 1D) di ratings. Usa un indice di riga positivo e uno slice specificando solo start (indice positivo).

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 10
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

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?

close

bookAssegnazione 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.
123456789101112131415161718
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)
copy

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.

Compito

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:

  1. Assegna il valore 20 a ogni elemento di prices maggiore di 10 (indicizzazione booleana) utilizzando uno scalare.
  2. Assegna un array NumPy con elementi 9, 8 agli ultimi due elementi della seconda riga (secondo array 1D) di ratings. Usa un indice di riga positivo e uno slice specificando solo start (indice positivo).

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 10
single

single

some-alt