Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Assegnare Valori a Sottoarray Indicizzati | Indicizzazione e Slicing
Numpy Definitivo

Scorri per mostrare il menu

book
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.

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 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.

Compito

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:

  1. Assegna il valore 20 a ogni elemento in prices maggiore di 10 (indicizzazione booleana) usando 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 una 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
Siamo spiacenti che qualcosa sia andato storto. Cosa è successo?

Chieda ad AI

expand
ChatGPT

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

book
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.

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 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.

Compito

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:

  1. Assegna il valore 20 a ogni elemento in prices maggiore di 10 (indicizzazione booleana) usando 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 una 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
Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Siamo spiacenti che qualcosa sia andato storto. Cosa è successo?
some-alt