Trouver la médiane d'une liste de nombres avec python

Published: 16 janvier 2017

DMCA.com Protection Status

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