Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Operazioni Matematiche di Base | Matematica con NumPy
Ultimate NumPy

bookOperazioni Matematiche di Base

Ora che hai familiarità con il concetto di broadcasting, analizziamo alcune operazioni matematiche di base in NumPy.

Operazioni scalari

Ricorda che il broadcasting consente di eseguire operazioni matematiche tra due array di forme compatibili o tra un array e uno scalare.

1234567891011
import numpy as np array = np.array([1, 2, 3, 4]) # Scalar addition result_add_scalar = array + 2 print(f'Scalar addition: {result_add_scalar}') # Scalar multiplication result_mul_scalar = array * 3 print(f'Scalar multiplication: {result_mul_scalar}') # Raising an array to a scalar power result_power_scalar = array ** 3 print(f'Scalar exponentiation: {result_power_scalar}')
copy

Come puoi vedere, ogni operazione viene eseguita elemento per elemento sull'array. In sostanza, uno scalare viene broadcastizzato su un array della stessa forma del nostro array originale, dove tutti gli elementi hanno lo stesso valore. Pertanto, l'operazione viene eseguita su ogni coppia di elementi corrispondenti dei due array.

Operazioni tra due array

Se le forme di due array sono compatibili, viene eseguito il broadcasting se necessario e, ancora una volta, l'operazione viene effettuata elemento per elemento:

123456789101112
import numpy as np arr1 = np.array([1, 2, 3, 4]) arr2 = np.array([5, 6, 7, 8]) # Element-wise addition result_add = arr1 + arr2 print(f'Element-wise addition: {result_add}') # Element-wise multiplication result_mul = arr1 * arr2 print(f'Element-wise multiplication: {result_mul}') # Element-wise exponentiation (raising to power) result_power = arr1 ** arr2 print(f'Element-wise exponentiation: {result_power}')
copy

La divisione, la sottrazione e le altre operazioni aritmetiche funzionano in modo analogo. Ecco un altro esempio in cui il secondo array (a destra) viene trasmesso tramite broadcasting:

123456789101112
import numpy as np arr1 = np.array([[1, 2, 3], [4, 5, 6]]) arr2 = np.array([5, 6, 7]) # Element-wise addition result_add = arr1 + arr2 print(f'Element-wise addition: {result_add}') # Element-wise multiplication result_mul = arr1 * arr2 print(f'Element-wise multiplication: {result_mul}') # Element-wise exponentiation (raising to power) result_power = arr1 ** arr2 print(f'Element-wise exponentiation:\n{result_power}')
copy

arr_2 viene trasmesso tramite broadcasting a un array 2D con due righe identiche, ciascuna contenente l'array [5, 6, 7].

Applicazioni

Tali operazioni matematiche sono fondamentali per attività come la scalatura, la normalizzazione e la trasformazione dei dati nell'ambito dell'apprendimento automatico e dell'analisi statistica. Consentono operazioni efficienti elemento per elemento per combinare set di dati, eseguire simulazioni numeriche e applicare filtri nell'elaborazione di immagini e segnali. Inoltre, queste operazioni sono ampiamente utilizzate nel calcolo scientifico e nelle applicazioni data-driven.

Compito

Swipe to start coding

Stai analizzando i dati di vendita trimestrali di due prodotti nel 2021 e 2022, memorizzati in due array 2D:

  • sales_data_2021: vendite trimestrali per ciascun prodotto nel 2021, con ogni riga che rappresenta un prodotto specifico;
  • sales_data_2022: vendite trimestrali per ciascun prodotto nel 2022, con ogni riga che rappresenta un prodotto specifico.

Calcolare la crescita percentuale del fatturato trimestrale per ciascun prodotto.

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 2
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

close

Awesome!

Completion rate improved to 3.7

bookOperazioni Matematiche di Base

Scorri per mostrare il menu

Ora che hai familiarità con il concetto di broadcasting, analizziamo alcune operazioni matematiche di base in NumPy.

Operazioni scalari

Ricorda che il broadcasting consente di eseguire operazioni matematiche tra due array di forme compatibili o tra un array e uno scalare.

1234567891011
import numpy as np array = np.array([1, 2, 3, 4]) # Scalar addition result_add_scalar = array + 2 print(f'Scalar addition: {result_add_scalar}') # Scalar multiplication result_mul_scalar = array * 3 print(f'Scalar multiplication: {result_mul_scalar}') # Raising an array to a scalar power result_power_scalar = array ** 3 print(f'Scalar exponentiation: {result_power_scalar}')
copy

Come puoi vedere, ogni operazione viene eseguita elemento per elemento sull'array. In sostanza, uno scalare viene broadcastizzato su un array della stessa forma del nostro array originale, dove tutti gli elementi hanno lo stesso valore. Pertanto, l'operazione viene eseguita su ogni coppia di elementi corrispondenti dei due array.

Operazioni tra due array

Se le forme di due array sono compatibili, viene eseguito il broadcasting se necessario e, ancora una volta, l'operazione viene effettuata elemento per elemento:

123456789101112
import numpy as np arr1 = np.array([1, 2, 3, 4]) arr2 = np.array([5, 6, 7, 8]) # Element-wise addition result_add = arr1 + arr2 print(f'Element-wise addition: {result_add}') # Element-wise multiplication result_mul = arr1 * arr2 print(f'Element-wise multiplication: {result_mul}') # Element-wise exponentiation (raising to power) result_power = arr1 ** arr2 print(f'Element-wise exponentiation: {result_power}')
copy

La divisione, la sottrazione e le altre operazioni aritmetiche funzionano in modo analogo. Ecco un altro esempio in cui il secondo array (a destra) viene trasmesso tramite broadcasting:

123456789101112
import numpy as np arr1 = np.array([[1, 2, 3], [4, 5, 6]]) arr2 = np.array([5, 6, 7]) # Element-wise addition result_add = arr1 + arr2 print(f'Element-wise addition: {result_add}') # Element-wise multiplication result_mul = arr1 * arr2 print(f'Element-wise multiplication: {result_mul}') # Element-wise exponentiation (raising to power) result_power = arr1 ** arr2 print(f'Element-wise exponentiation:\n{result_power}')
copy

arr_2 viene trasmesso tramite broadcasting a un array 2D con due righe identiche, ciascuna contenente l'array [5, 6, 7].

Applicazioni

Tali operazioni matematiche sono fondamentali per attività come la scalatura, la normalizzazione e la trasformazione dei dati nell'ambito dell'apprendimento automatico e dell'analisi statistica. Consentono operazioni efficienti elemento per elemento per combinare set di dati, eseguire simulazioni numeriche e applicare filtri nell'elaborazione di immagini e segnali. Inoltre, queste operazioni sono ampiamente utilizzate nel calcolo scientifico e nelle applicazioni data-driven.

Compito

Swipe to start coding

Stai analizzando i dati di vendita trimestrali di due prodotti nel 2021 e 2022, memorizzati in due array 2D:

  • sales_data_2021: vendite trimestrali per ciascun prodotto nel 2021, con ogni riga che rappresenta un prodotto specifico;
  • sales_data_2022: vendite trimestrali per ciascun prodotto nel 2022, con ogni riga che rappresenta un prodotto specifico.

Calcolare la crescita percentuale del fatturato trimestrale per ciascun prodotto.

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 4. Capitolo 2
single

single

some-alt