Diciamo che ho una lista:Come calcolare la media mobile in Python 3?
y = ['1', '2', '3', '4','5','6','7','8','9','10']
Voglio creare una funzione che calcola la media mobile n giorni. Quindi se n
era 5, vorrei che il mio codice calcoli il primo 1-5, aggiungilo e trovi la media, che sarebbe 3.0, poi vai a 2-6, calcola la media, che sarebbe 4.0, quindi 3-7, 4-8, 5-9, 6-10.
Non voglio calcolare i primi n-1 giorni, quindi a partire dall'undicesimo giorno, contò i giorni precedenti.
def moving_average(x:'list of prices', n):
for num in range(len(x)+1):
print(x[num-n:num])
Questo sembra di stampare quello che voglio:
[]
[]
[]
[]
[]
['1', '2', '3', '4', '5']
['2', '3', '4', '5', '6']
['3', '4', '5', '6', '7']
['4', '5', '6', '7', '8']
['5', '6', '7', '8', '9']
['6', '7', '8', '9', '10']
Tuttavia, non so come calcolare i numeri all'interno di questi elenchi. Qualche idea?
Perché si dispone di stringhe nell'elenco anziché numeri? –