このコードは機能します。しかし、特に「オフセット」の部分がハックだと感じずにはいられません。そうしないと、del 操作を行うたびに削除のすべてのインデックス値が 1 つシフトされるためです。
# 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
それをより良くする方法についてのアイデアはありますか?