когда использовать модули numpy vs statistics - PullRequest
0 голосов
/ 03 января 2019

Работая над некоторыми инструментами статистического анализа, я обнаружил, что существует как минимум 3 метода Python для расчета среднего и стандартного отклонения (не считая методик «брось свои собственные»):

  • np.mean(), np.std() (с ddof = 0 или 1)
  • statistics.mean(), statistics.pstdev() (и / или statistics.stdev)
  • scipy.statistics пакет

Это заставляет меня чесать голову. Должен быть один очевидный способ сделать это, верно? :-) Я нашел несколько старых SO сообщений. Один сравнивает преимущества производительности np.mean() против statistics.mean(). Это также подчеркивает различия в операторе суммы. Этот пост здесь: почему статистика так медленна

Я работаю с массивом данных numpy, и мои значения находятся в небольшом диапазоне (от -1,0 до 1,0 или от 0,0 до 10,0), поэтому функции numpy кажутся очевидным ответом для моего приложения. У них хороший баланс скорости, точности и простоты реализации для данных, которые я буду обрабатывать.

Похоже, модуль statistics предназначен в первую очередь для тех, у кого есть данные в списках (или других формах), или для широко варьирующихся диапазонов [1e+5, 1.0, 1e-5]. Это все еще справедливое заявление? Существуют ли улучшения numpy, которые устраняют различия в операторе суммы? Последние разработки приносят какие-то другие преимущества?

Численные алгоритмы, как правило, имеют положительные и отрицательные стороны: некоторые из них быстрее или точнее, или требуют меньшего объема памяти. Перед лицом выбора из 3-4 способов сделать расчет ответственность разработчика состоит в том, чтобы выбрать «лучший» метод для его / ее приложения. Обычно это баланс между конкурирующими приоритетами и ресурсами.

Мое намерение состоит в том, чтобы запросить ответы у программистов, имеющих опыт статистического анализа, чтобы получить представление о сильных и слабых сторонах описанных выше методов (или других / более эффективных методов). [ Меня не интересуют спекуляции или мнения без подтверждающих фактов. ] Я сам приму решение на основе моих требований к дизайну.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...