Qual è il modo più efficace per trovare sequenzialmente la media e la mediana delle righe in una lista Python?Calcola efficientemente la media e la mediana
Per esempio, la mia lista:
input_list = [1,2,4,6,7,8]
Voglio produrre un elenco di output che contiene:
output_list_mean = [1,1.5,2.3,3.25,4,4.7]
output_list_median = [1,1.5,2.0,3.0,4.0,5.0]
casi in cui è calcolata la media come segue:
- 1 = media (1)
- 1.5 = media (1,2) (cioè media dei primi 2 valori in input_list)
- 2.3 = media (1,2,4) (ad es. media dei primi 3 valori input_list)
- 3.25 = medio (1,2,4,6) (cioè significa dei primi 4 valori input_list) ecc
E la mediana è calcolata come segue:
- 1 = mediana (1)
- 1,5 = mediana (1,2) (cioè mediana dei primi 2 valori input_list)
- 2.0 = mediana (1,2,4) (cioè mediano primi 3 valori in input_list)
- 3.0 = mediana (1,2,4,6) (cioè mediana dei primi 4 valori input_list) ecc
ho cercato di attuare con il seguente ciclo, ma sembra molto inefficiente.
import numpy
input_list = [1,2,4,6,7,8]
for item in range(1,len(input_list)+1):
print(numpy.mean(input_list[:item]))
print(numpy.median(input_list[:item]))
"sembra molto inefficiente" rispetto a cosa? Hai tempo? Sospetto che 'import numpy' domini il runtime (e non ne hai bisogno) – msw