Выбор ответа Middle Описательная статистика обновлено

np.std и pandas std дают разные числа

Вопрос

На одном массиве np.std(x) вернул 2.0, а pd.Series(x).std() вернул 2.31. Почему?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: numpy делит на n (ddof=0), pandas на n - 1. Разные умолчания ddof: в numpy стандартное отклонение генеральной совокупности, в pandas выборочное.

Варианты ответа

  1. pandas пропускает NaN при расчёте, а numpy нет
  2. numpy округляет результат до одного знака
  3. pandas считает медианное абсолютное отклонение
  4. numpy делит на n (ddof=0), pandas на n - 1правильный ответ

Разбор

Разные умолчания ddof: в numpy стандартное отклонение генеральной совокупности, в pandas выборочное. Чтобы совпало, укажите ddof явно. Обработка NaN тут ни при чём, если пропусков нет, никто ничего не округляет, а медианное отклонение это другая функция.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме