Python mean: come trovare la media di elementi di una lista

Python è forse il linguaggio di programmazione più usato per lo sviluppo di statistiche e per l’intelligenza artificiale. Non stupisce quindi sapere che presenta numerosi metodi e moduli che semplificano notevolmente l’analisi dei dati. Di seguito illustriamo il funzionamento del metodo mean, progettato per calcolare il valore medio di una serie di numeri.

Python mean in breve: cosa può fare questo metodo?

Sintassi e funzionamento

Il funzionamento del metodo mean è facile da spiegare: mean di Python prende una serie di numeri e ne restituisce il valore medio. Per fare in modo che questo accada, i numeri devono essere riassunti in una lista che viene passata come singolo argomento. La lista può contenere sia numeri interi che numeri in virgola mobile. Il risultato del calcolo viene sempre espresso con un numero in virgola mobile. Nell’esempio qui sotto illustriamo la sintassi e il funzionamento di questo metodo.

import numpy as np
x = np.mean([1, 3, 2])
numeri = [1, 1.3, 4, 2.1, 1.0]
y = np.mean(numeri)
print(x)     # risultato: 2,0
print(y)     # risultato: 1,8800000000000001
Python

Come mostrato nell’esempio, il metodo opera esattamente come descritto: l’output corrisponde alla media della lista di numeri iniziale. Il risultato è sempre un numero in virgola mobile, come evidenziato nell’esempio np.mean([1, 3, 2]). Nonostante la media di questi numeri sia il numero esatto 2, la cifra mostrata è comunque “2,0”. Dall’esempio risulta inoltre evidente che l’elenco può essere scritto per intero o sotto forma di variabile, che sarà stata definita in precedenza.

Inoltre, in questo esempio è possibile notare due dettagli importanti relativi al metodo mean. Il primo riguarda la precisione dei numeri in virgola mobile, mentre il secondo riguarda l’utilizzo del modulo numpy.

Rappresentazione dei numeri in virgola mobile

Effettuando manualmente il secondo calcolo dell’esempio, si otterrà un risultato di 1,88. Tuttavia, il programma non restituirà lo stesso valore. Questo comportamento può essere attribuito alla rappresentazione dei numeri in virgola mobile nel sistema binario su cui si basano tutti i moderni computer. Proprio come nel sistema decimale convenzionale, esistono alcuni numeri frazionari che nel sistema binario non possono essere rappresentati con esattezza. Prendiamo ad esempio il numero 0,3333 del sistema decimale. Possiamo sempre aggiungere un 3 in più, ma non otterremo mai un terzo esatto.

Anche se questo problema è inevitabile, i numeri in virgola mobile risultano sufficientemente accurati da non creare grandi problemi nella maggior parte dei casi. Ciononostante, è importante sapere che, quando si lavora con essi, i numeri in virgola mobile possono portare a delle imprecisioni.

Il modulo numpy

Come evidenziato nell’esempio precedente, è importante notare che il metodo mean non fa parte della libreria standard di Python. Per poter utilizzare questo metodo, è necessario importarlo da un modulo esterno, come ad esempio numpy o statistics. Potrebbe dover essere necessario installare tali moduli, ma una volta completata questa operazione, è possibile includerli facilmente all’interno del proprio programma. Ti basterà aggiungere questa riga di codice all’inizio del programma: import numpy. Se in futuro desideri fare riferimento al modulo con un nome differente, puoi usare il comando import numpy as x, dove x rappresenterà il nome che avrai scelto per il modulo.

Consiglio

Desideri pubblicare la tua applicazione web in modo facile e rapido usando Git? Allora Deploy Now di IONOS è la soluzione perfetta per te!

Alternative a mean di Python

Come già accennato, il metodo mean non appartiene alla libreria standard di Python, ma a moduli esterni come numpy, che dovrai prima importare. Tuttavia, se questo non dovesse essere possibile, potrai implementare il metodo mean in un altro modo. A tal proposito è sufficiente scrivere poche righe di codice:

def mean(numeri):
    return sum(numeri)/len(numeri)
Python

I metodi sum e len utilizzati nell’esempio sopra sono già presenti nella libreria standard di Python e possono quindi essere richiamati senza bisogno di importarli precedentemente. Come si può vedere nell’esempio qui sotto, tale soluzione funziona esattamente come mean della libreria numpy.

def mean(numeri):
    return sum(numeri)/len(numeri)
x = mean([1, 3, 2])
numeri = [1, 1.3, 4, 2.1, 1.0]
y = mean(numeri)
print(x)    # risultato: 2,0
print(y)    # risultato: 1,8800000000000001
Python
N.B.

Oltre a metodi come mean, anche gli operatori Python svolgono un ruolo fondamentale nell’elaborazione di record di dati. Nel nostro articolo dedicato a questo argomento, ti spieghiamo come funziona ciascun operatore e ti illustriamo quali possibilità offre.

Esempi per utilizzare Python mean

Per concludere illustreremo alcuni casi d’uso del metodo mean. Nel programma qui sotto, l’utente viene invitato a inserire ripetutamente un numero. Questo valore viene convertito da string a integer e aggiunto a una lista. Il valore medio degli elementi in questa lista viene costantemente aggiornato e restituito ogni qualvolta viene inserito un nuovo valore.

import numpy as np
lista = []
while(True):
    liste.append(int(input('Aggiungi numero alla lista: ')))
    print(np.mean(lista))
Python

Nell’esempio successivo ci sono tre persone, ognuna con una coordinata x, y e z. Il metodo mean viene utilizzato per calcolare il centro delle tre persone.

import numpy as np
persona1 = [1.5, 6.0, 4.2]
persona2 = [10.0, 9.0, 7.7]
persona3 = [15.5, 0.0, -5.0]
Persone = [persona1, persona2, persona3]
Posizionemedia = []
i = 0
while(i < len(persona1)):
    temp = []
    per x in persone:
        temp.append(x[i])
    posizionemedia.append(np.mean(temp))
    i = i + 1
print(posizione media)     #Risultato: [9.0, 5.0, 2.3000000000000003]
Python
Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top