Operazioni Matematiche di Base
Ora che hai familiarità con il concetto di broadcasting, discutiamo alcune operazioni matematiche di base in NumPy.
Operazioni Scalari
Ricorda, il broadcasting ti consente di eseguire operazioni matematiche tra due array di forme compatibili o tra un array e uno scalare.
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}')
Come puoi vedere, ogni operazione viene eseguita elemento per elemento sull'array. Essenzialmente, uno scalare viene trasmesso a un array della stessa forma del nostro array
originale, dove tutti gli elementi sono lo stesso numero. 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, la trasmissione viene eseguita se necessario, e ancora una volta, un'operazione viene eseguita elemento per elemento:
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}')
La divisione, la sottrazione e altre operazioni aritmetiche funzionano in modo simile. Ecco un altro esempio in cui il secondo array (a destra) viene trasmesso:
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}')
arr_2
viene trasmesso a un array 2D con due righe identiche, ciascuna contenente l'array [5, 6, 7]
.
Applicazioni
Tali operazioni matematiche sono essenziali per compiti come il ridimensionamento, la normalizzazione e la trasformazione dei dati nell'ambito del machine learning e dell'analisi statistica. Consentono operazioni efficienti elemento per elemento per combinare dataset, eseguire simulazioni numeriche e applicare filtri nell'elaborazione di immagini e segnali. Inoltre, queste operazioni sono ampiamente utilizzate nel calcolo scientifico e nelle applicazioni basate sui dati.
Swipe to start coding
Stai analizzando i dati delle vendite trimestrali per 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.
Calcola la crescita del fatturato trimestrale per ciascun prodotto in percentuale.
Soluzione
Grazie per i tuoi commenti!