AD

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