Я недавно наткнулся на странное поведение, которое я не понимаю: у меня есть список экспериментов. Каждый из экспериментов сам по себе представляет собой список образцов. Таким образом, я получаю список списков. Эксперименты проводились в различных условиях, поэтому некоторые из них содержат больше образцов, чем другие. Общим для них является то, что они содержат более 100 образцов.
Теперь я хотел вычислить среднее и стандартное отклонение образцов для каждого эксперимента. Что работает для меня это
sDevPD = [np.std(x) for x in f0PD]
где я просто перебираю все списки в моем списке экспериментов f0PD
. Хорошо, теперь я попробовал использовать numpy:
sDevPD = np.std(f0PD, axis = 1)
Это не работает, NumPy выбросит IndexError: tuple index out of range
. Я попытался отследить ошибку как мог, и обнаружил, что функция numpy выдает эту ошибку, только если эксперименты различаются по размеру. Если у меня есть список списков одинаковой длины, все работает нормально. То же самое относится к np.mean
.
Может кто-нибудь объяснить мне это поведение? Я думаю, что абсолютно законно вычислять стандартные отклонения для списков разного размера.