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
PythonCome 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.
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)
PythonI 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
PythonOltre 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))
PythonNell’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