Solution 1 Pour calculer une médiane avec python il existe plusieurs solutions. Par exemple écrire une simple fonction pour calculer la médiane:
def calculate_median(l):
l = sorted(l)
l_len = len(l)
if l_len < 1:
return None
if l_len % 2 == 0 :
return ( l[(l_len-1)/2] + l[(l_len+1)/2] ) / 2.0
else:
return l[(l_len-1)/2]
l = [1]
print calculate_median(l)
l = [3,1,2]
print calculate_median(l)
l = [1,2,3,4]
print calculate_median(l)
donne
1
2
2.5
Exemple avec une liste de nombres générés aléatoirement entre 0 et 10:
from random import randint
l = [randint(0,10) for i in range(100)]
print calculate_median(l)
donne par exemple 5.0
Solution 2 Autre solution, utiliser median de numpy:
import numpy as np
l = [1]
print np.median(np.array(l))
l = [3,1,2]
print np.median(np.array(l))
l = [1,2,3,4]
print np.median(np.array(l))
Solution 3 ou dernière solution avec python 3 il existe statistics.median:
import statistics
l = [1, 3, 5, 7]
median(l)
donne ici
4
Note: Pour une liste avec beaucoup d'elements, voir l'algorithme "Médiane des médianes".
Recherches associées
Liens | Site |
---|---|
Finding median of list in Python | stackoverflow |
How to find Median | stackoverflow |
middle number without using median function, Python | stackoverflow |
numpy.median | doc scipy |
statistics.median | python doc |