This code works. But I can't help but feel it's a hack, especially the "offset" part. I had to put that in there because otherwise all the index values in deletes are shifted by one every time I do a del operation.
# remove outliers > devs # of std deviations
devs = 1
deletes = []
for num, duration in enumerate(durations):
if (duration > (mean_duration + (devs * std_dev_one_test))) or \
(duration < (mean_duration - (devs * std_dev_one_test))):
deletes.append(num)
offset = 0
for delete in deletes:
del durations[delete - offset]
del dates[delete - offset]
offset += 1
Ideas on how to make it better?