Sommare array NumPy con la funzione np.sum
Un'operazione abbastanza comune quando si ha a che fare con array, riguarda la somma degli elementi contenuti in un array, e in questo contesto la funzione np.sum diventa uno strumento indispensabile.
Questa guida fornirà una panoramica su come utilizzare np.sum per sommare array NumPy in Python, esplorando le varie opzioni e configurazioni disponibili.
La funzione np.sum in NumPy è progettata per restituire la somma degli elementi lungo un asse specificato o su tutti gli elementi di un array. È una funzione versatile che può essere utilizzata sia con array monodimensionali (vettori) che con array multidimensionali (matrici, tensor). La sintassi di base di np.sum è la seguente:
numpy.sum(a, axis=None, dtype=None, out=None, keepdims=False)
dove:
a: è l'array di input, ovvero l'array i cui elementi devono essere sommati.
axis: specifica l'asse lungo il quale eseguire la somma. Se non specificato, la somma viene calcolata su tutti gli elementi dell'array.
dtype: specifica il tipo di dato del risultato. Se non specificato, il tipo di dato è quello dell'array di input.
out: un array opzionale dove memorizzare il risultato. Deve avere la stessa forma e tipo di dati previsti.
keepdims: se impostato a True, mantiene le dimensioni dell'array di input nel risultato, utile in contesti di broadcasting.
Esempi di utilizzo della funzione np.sum di NumPy
Il modo più semplice per utilizzare np.sum è sommare tutti gli elementi di un array monodimensionale:
import numpy as np
array = np.array([1, 2, 3, 4, 5])
somma_totale = np.sum(array)
print(somma_totale) # Output: 15
Quando si lavora con array multidimensionali, come matrici o tensor, np.sum può essere utilizzato per calcolare la somma lungo un asse specifico:
import numpy as np
matrice = np.array([[1, 2, 3], [4, 5, 6]])
somma_asse_0 = np.sum(matrice, axis=0)
somma_asse_1 = np.sum(matrice, axis=1)
print(somma_asse_0) # Output: [5 7 9]
print(somma_asse_1) # Output: [6 15]
In questo esempio, la somma lungo l'asse 0 (colonne) restituisce un array contenente la somma degli elementi di ogni colonna, mentre la somma lungo l'asse 1 (righe) restituisce la somma degli elementi di ogni riga.
A volte è utile specificare il tipo di dato del risultato, soprattutto quando si lavora con numeri che potrebbero causare overflow o richiedere una precisione maggiore.
La funzione np.sum può essere anche utilizzata per sommare solo gli elementi che soddisfano una determinata condizione. Questo è particolarmente utile quando si lavora con array di grandi dimensioni e si desidera filtrare i dati:
import numpy as np
array = np.array([1, 2, 3, 4, 5, 6])
maschera = array % 2 == 0 # Seleziona solo i numeri pari
somma_pari = np.sum(array[maschera])
print(somma_pari) # Output: 12