Python как инструмент статистики

355

Многие люди используют основной инструмент, такой как Excel или другую электронную таблицу, SPSS, Stata или R, для своих статистических нужд. Они могут обратиться к какому-то конкретному пакету для очень особых нужд, но многое можно сделать с помощью простой электронной таблицы или пакета общей статистики или среды программирования статистики.

Мне всегда нравился Python как язык программирования, и для простых нужд легко написать короткую программу, которая рассчитывает то, что мне нужно. Matplotlib позволяет мне строить это.

Кто-нибудь полностью переключился, скажем, с R на Python? R (или любой другой пакет статистики) обладает множеством функций, специфичных для статистики, и имеет структуры данных, которые позволяют вам думать о статистике, которую вы хотите выполнить, и меньше о внутреннем представлении ваших данных. Преимущество Python (или другого динамического языка) в том, что я могу программировать на знакомом языке высокого уровня, и он позволяет мне программно взаимодействовать с реальными системами, в которых находятся данные или из которых я могу проводить измерения. Но я не нашел ни одного пакета Python, который позволил бы мне выражать вещи с помощью «статистической терминологии» - от простой описательной статистики до более сложных многомерных методов.

Что вы можете порекомендовать, если я хотел использовать Python в качестве «рабочего места для статистики» вместо R, SPSS и т. Д.?

Что бы я получил и потерял, основываясь на вашем опыте?

Fabian Fagerholm
источник
5
К вашему сведению, появился новый субреддит статистики Python: reddit.com/r/pystats
naught101
Когда вам нужно переместить что-то в командной строке, pythonpy ( github.com/Russell91/pythonpy ) - хороший инструмент.
РасселСтюарт

Ответы:

307

Трудно игнорировать множество статистических пакетов, доступных в R / CRAN. Тем не менее, я провожу много времени на земле Python и никогда не отговариваю никого от такого большого удовольствия, как я. :) Вот некоторые библиотеки / ссылки, которые могут оказаться полезными для статистической работы.

  • NumPy / Scipy Вы, наверное, уже знаете об этом. Но позвольте мне указать Поваренную книгу, где вы можете прочитать о многих уже доступных статистических средствах, и Пример списка, который является отличным справочником по функциям (включая манипулирование данными и другие операции). Еще одна полезная ссылка - « Распределения Джона Кука в Scipy» .

  • pandas Это действительно хорошая библиотека для работы со статистическими данными - табличными данными, временными рядами, панельными данными. Включает в себя множество встроенных функций для суммирования данных, группировки / агрегирования, поворота. Также имеется библиотека статистики / эконометрики.

  • Ларри Помеченный массив, который хорошо играет с NumPy. Предоставляет статистические функции, отсутствующие в NumPy и подходящие для манипулирования данными.

  • python-statlib Довольно недавняя попытка объединить несколько разбросанных статистических библиотек. Полезно для базовой и описательной статистики, если вы не используете NumPy или панд.

  • statsmodels Статистическое моделирование: линейные модели, GLM, среди других.

  • scikits Статистические и научные вычислительные пакеты - особенно сглаживание, оптимизация и машинное обучение.

  • PyMC Для ваших байесовских / MCMC / иерархических потребностей моделирования. Настоятельно рекомендуется.

  • Модели PyMix Mixture.

  • Biopython Полезно для загрузки ваших биологических данных в python и предоставляет некоторые элементарные инструменты статистического / машинного обучения для анализа.

Если скорость становится проблемой, рассмотрим Theano - с большим успехом используем глубоко обученные люди.

Там есть много других вещей, но это то, что я считаю наиболее полезным, как вы упомянули.

ars
источник
16
Все ответы были полезными и полезными, и все они заслуживают того, чтобы их приняли. Этот, однако, отлично справляется с ответом на вопрос: с Python вы должны собрать множество частей, чтобы сделать то, что вы хотите. Эти указатели, без сомнения, будут очень полезны для тех, кто хочет заниматься статистикой / моделированием / и т.д. с питоном. Спасибо всем!
Фабиан Фагерхольм
1
@ars, пожалуйста, знаете ли вы, как лучше всего использовать Python с Windows?
Стефан Лоран
1
@ StéphaneLaurent Обычно я сам устанавливаю различные части, но для быстрого запуска / установки вы можете подумать: pythonxy .
АРС
Этот скрипт устанавливает многие из библиотек, указанных выше: fonnesbeck.github.com/ScipySuperpack
о.
Pythonxy хорош, но он может раздражать, если вы хотите делать большие вычисления, так как он доступен только для 32 бит. Вот неофициальные бинарные файлы для установки многих пакетов Python. Они могут быть весьма полезны, если вы решили работать под Windows. lfd.uci.edu/~gohlke/pythonlibs @ StéphaneLaurent
JEquihua
140

Будучи цифровой платформой и заменой MATLAB, Python достиг зрелости по крайней мере 2-3 года назад, и теперь во многих отношениях намного лучше, чем MATLAB. Примерно в то же время я попытался переключиться на Python с R и потерпел неудачу. Слишком много пакетов R, которые я использую ежедневно, не имеют эквивалента Python. Отсутствие ggplot2 достаточно, чтобы быть наглядным примером, но их гораздо больше. В дополнение к этому, R имеет лучший синтаксис для анализа данных. Рассмотрим следующий базовый пример:

Python :

results = sm.OLS(y, X).fit()

R :

results <- lm(y ~ x1 + x2 + x3, data=A)

Что вы считаете более выразительным? В R вы можете мыслить в терминах переменных и легко расширять модель, скажем, до

lm(y ~ x1 + x2 + x3 + x2:x3, data=A)

По сравнению с R Python является языком низкого уровня для построения моделей.

Если бы у меня было меньше требований к расширенным статистическим функциям и я уже программировал Python для более крупного проекта, я бы счел Python хорошим кандидатом. Я бы также учел это, когда нужен простой подход, либо из-за ограничений скорости, либо из-за того, что пакеты R не дают преимущества.

Для тех , кто делает относительно передовой статистики прямо сейчас , ответ не представляет никакой опасности, и нет . На самом деле, я считаю, что Python ограничит ваши взгляды на анализ данных. Потребуются несколько лет и много человеко-лет усилий, чтобы произвести замену модулей для 100 основных пакетов R, и даже тогда Python будет чувствовать себя как язык, на котором были заложены возможности анализа данных. Поскольку R уже собрал наибольшую относительную долю прикладных статистиков в нескольких областях, я не вижу, чтобы это произошло в ближайшее время. Сказав это, это свободная страна, и я знаю людей, делающих статистику в APL и C.

оборота гаппи
источник
9
+1 Мне просто нравится этот ответ, потому что вы делаете упор на R в качестве статистического языка для работы с данными, используя формулы и тому подобное. При этом я ожидаю большого положительного влияния панд (в сочетании со statsmodels) в сообществе Python.
ЧЛ
28
в сообществе Python patsy удовлетворяет потребность в «формуле», которую вы описываете, иногда улучшая то, что предлагает R: patsy.readthedocs.org/en/v0.1.0/index.html Что приятно в Python, это то, что все эти аспекты обрабатываются ортогонально. Pandas позаботится о временных сериях и представлении данных / кадров. Пирс для формул. Numpy для представления массива и векторизации. statsmodels оборачивает статистические алгоритмы. scipy для оптимизации и куча других вещей. Результат - более чистые интерфейсы. R, по сравнению с ним, более зрелый, но является шариком волос. ../ ..
Блейс
3
../ .. Я думаю, что в конечном итоге силы будут продвигаться в направлении все большей и большей интеграции с Python, и вы обнаружите, что он станет весьма конкурентом R. Очистка данных в R - такая PIA по сравнению с Python, и это никогда не тривиальная часть работы. - Бле
хл
9
как обновление: первый пример в документации statsmodels теперь results = smf.ols('Lottery ~ Literacy + np.log(Pop1831)', data=dat).fit(). Statsmodels все еще сильно отстает от других статистических пакетов, таких как R, с точки зрения охвата, но есть все больше и больше вещей, которые вы можете сделать в python, прежде чем вам нужно будет захватить другой язык или статистический пакет. (GEE и Mixed будут в следующем выпуске.)
Йозеф
4
«Что хорошо в Python, так это то, что все эти аспекты обрабатываются ортогонально ...». Я не согласен по ряду пунктов. Существуют значительные совпадения между numpy, scipy, statsmodels. Дизайн R гораздо более модульный и экономичный. Кроме того, большинство не во всех концептуальных нововведениях в ориентированных на данные языках (не только в формулах, но и в фреймах данных, грамматике графики, в виде грамматики меделей, knitr и все еще развивающейся грамматики данных dplyr) возникли в R. Сообщество Python, кажется, всегда на шаг позади и чрезмерно сосредоточено на производительности.
gappy
95

Во-первых, позвольте мне сказать, что я согласен с ответом Джона Д. Кука: Python не является языком, специфичным для предметной области, как R, и, соответственно, вы сможете сделать гораздо больше в будущем. Конечно, R, являющийся DSL, означает, что последние алгоритмы, опубликованные в JASA, почти наверняка будут в R. Если вы выполняете в основном специальную работу и хотите экспериментировать с новейшей техникой регрессии лассо, скажем, R трудно победить. Если вы выполняете больше аналитической работы, интегрируясь с существующим программным обеспечением и средами и заботитесь о скорости, расширяемости и удобстве обслуживания, Python будет служить вам гораздо лучше.

Во-вторых, ars дал отличный ответ с хорошими ссылками. Вот еще несколько пакетов, которые я считаю необходимыми для аналитической работы в Python:

  • matplotlib для красивой, качественной графики публикации.
  • IPython для расширенной интерактивной консоли Python. Важно отметить, что IPython предоставляет мощную платформу для интерактивных параллельных вычислений в Python.
  • Cython для простого написания расширений C на Python. Этот пакет позволяет вам взять кусок вычислительного кода на языке Python и легко преобразовать его в расширение C. Затем вы сможете загрузить расширение C, как и любой другой модуль Python, но код будет работать очень быстро, поскольку он находится в C.
  • PyIMSL Studio для коллекции сотен математических и статистических алгоритмов, которые тщательно документированы и поддерживаются. Вы можете вызывать точно такие же алгоритмы из Python и C с почти одинаковым API, и вы получите те же результаты. Полное раскрытие: я работаю над этим продуктом, но я также часто его использую.
  • xlrd для чтения в файлах Excel легко.

Если вы хотите более похожую на MATLAB интерактивную IDE / консоль, посмотрите Spyder или плагин PyDev для Eclipse .

Джош Хеманн
источник
15
R не является DSL в обычном смысле этого слова. Это полный, полный по Тьюрингу язык программирования.
Хэдли
4
@hadley: Возможно, я использую «DSL» в разговорной речи, но на сколько это стоит, на странице Википедии о DSL явно указаны S + и R в качестве примеров DSL и Python в качестве языка общего назначения. См. En.wikipedia.org/wiki/Domain-specific_language . В том же духе SAS полон по Тьюрингу (только если используется макрокомпонент IML), но я бы вряд ли назвал его полным языком в практическом смысле. Я считаю R бесценным в своей работе, но я стараюсь как можно больше кодировать, используя языки общего назначения, а не делать все в R (или Excel в этом отношении).
Джош Хеманн
16
Я думаю, что было бы несправедливо включать R и S в тот же список, что и другие языки в Википедии - в R нет ничего, что вы не можете сделать в Python. Конечно, есть много вещей, которые лучше подходят для другого языка программирования, но то же самое относится и к Python.
Хэдли
6
Ах, Хэдли удалил R и S + со страницы Википедии в тот же день, когда мы обменивались комментариями, 13 октября 2011 года. Поэтому я часто слышу мантру «R была разработана и для статистиков» как ее основополагающая сила. По-видимому, теперь это тоже язык общего назначения ...
Джош Хеманн
5
Ну, я могу иметь многопоточный код с R? Сетевой асинхронный ввод-вывод? Поверьте мне, эти случаи действительно возникают в научных вычислениях. R - это DSL, по моему мнению. Он силен в статистике и плох в большинстве других вещей.
Gael Varoquaux
61

Я не думаю, что есть какой-либо аргумент, что диапазон статистических пакетов в cran и Bioconductor намного превышает что-либо, предлагаемое другими языками, однако это не единственное, что нужно учитывать.

В своих исследованиях я использую R, когда могу, но иногда R слишком медленный. Например, большой MCMC запустить.

Недавно я объединил Python и C для решения этой проблемы. Краткое резюме: подбор модели большой стохастической популяции с ~ 60 параметрами и выводом около 150 скрытых состояний с использованием MCMC.

  1. Читайте в данных в Python
  2. Создайте структуры данных C в Python, используя ctypes .
  3. Используя forцикл Python , вызовите функции C, которые обновили параметры и вычислили вероятность.

Быстрый расчет показал, что программа потратила 95% на C-функции. Тем не менее, мне не нужно было писать болезненный C-код для чтения данных или конструирования C-структур данных.


Я знаю, что есть также rpy , где python может вызывать функции R. Это может быть полезно, но если вы «просто» ведете статистику, я бы использовал R.

csgillespie
источник
29
Вставка бесстыдного плагина для Rcpp :)
Dirk Eddelbuettel
Любопытно, пробовали ли вы PyMC и как сравнивается производительность (относительно python / C) для ваших моделей.
АРС
@ars: В приведенном выше случае каждая итерация (из 10 ^ 8 итераций) включала в себя решение 5 ODE. Это действительно должно было быть сделано на C. Остальная часть кода была довольно простой, и поэтому код на C был простым. Мое приложение было нестандартным и поэтому PyMC не применимо - также это было ~ 2 года назад.
csgillespie
40

Следующие обсуждения StackOverflow могут быть полезны

оборота Джером англим
источник
Все эти обсуждения были удалены :-(. Возможно, этот ответ тоже должен быть удален?
Джонатан
12
Печально. Я обновил ссылки, чтобы ссылаться на копии машин обратного хода.
Джером Англим
36

Я не видел scikit-learn, явно упомянутый в ответах выше. Это пакет Python для машинного обучения на Python. Он довольно молодой, но растет очень быстро (отказ от ответственности: я - разработчик, изучающий науку). Его целью является предоставление стандартных алгоритмических инструментов машинного обучения в унифицированном интерфейсе с акцентом на скорость и удобство использования. Насколько я знаю, вы не можете найти ничего подобного в Matlab. Это сильные стороны:

  • Подробная документация , с большим количеством примеров

  • Высококачественные стандартные инструменты обучения (регрессия / классификация). В частности:

  • Возможность выбора модели путем перекрестной проверки с использованием нескольких процессоров.

  • Обучение без присмотра для изучения данных или первого сокращения размерности, которое можно легко связать с обучением под наблюдением.

  • Открытый исходный код, BSD лицензируется. Если вы находитесь не в чисто академической среде (я нахожусь в национальной лаборатории штата), это очень важно, так как тогда затраты на Matlab очень высоки, и вы можете подумать о том, чтобы получать продукты из своей работы.

Matlab - отличный инструмент, но в моей собственной работе scipy + scikit-learn начинает давать мне преимущество в Matlab, потому что Python лучше справляется с памятью благодаря своему механизму просмотра (и у меня большие данные), а также потому, что scikit-learn позволяет мне очень легко сравнивать разные подходы.

Gael Varoquaux
источник
29

Одним из преимуществ перехода на Python является возможность выполнять больше работы на одном языке. Python - это разумный выбор для сокращения чисел, написания веб-сайтов, административных сценариев и т. Д. Поэтому, если вы ведете свою статистику в Python, вам не придется переключать языки для выполнения других задач программирования.

Обновление: 26 января 2011 г. Microsoft Research анонсировала Sho , новую Python-среду для анализа данных. У меня еще не было возможности попробовать это, но это звучит как интересная возможность, если вы хотите запустить Python, а также взаимодействовать с библиотеками .NET.

Джон Д. Кук
источник
4
Я сделал много перебора чисел, один веб-сайт и несколько административных скриптов на R, и они работают довольно хорошо.
28

Возможно, этот ответ обманывает, но кажется странным, что никто не упомянул проект rpy , который обеспечивает интерфейс между R и Python. Вы получаете питон API для большинства функциональных возможностей R, сохраняя (я бы сказал лучше) синтаксис, обработку данных и в некоторых случаях скорость Python. Маловероятно, что Python когда-либо будет иметь столько же инструментов статистики, чем R, просто потому, что R - это dsl, а сообщество статистики больше инвестируется в R, чем, возможно, любой другой язык.

Я считаю, что это аналогично использованию ORM для использования преимуществ SQL, при этом позволяя Python быть Python, а SQL - SQL.

Другие полезные пакеты специально для структур данных включают в себя:

  • pydataframe копирует data.frame и может использоваться с rpy. Позволяет использовать R-подобную фильтрацию и операции.
  • pyTables Использует быстрый тип данных hdf5 внизу, был вокруг целую вечность
  • h5py Также hdf5, но специально нацеленный на взаимодействие с NumPy
  • pandas Еще один проект, который управляет data.frame как данные, работает с rpy, pyTables и numpy
Гриффит Рис
источник
1
Я всегда нахожу рпи неряшливый, чтобы работать с. Например, требуются большие строки кода с некоторыми простыми функциями.
Нестор
Возможно, расширение rmagic для IPython (как указывает @CarlSmith) может облегчить работу с rpy2? См. Ipython.org/ipython-doc/dev/config/extensions/rmagic.html .
Джонатан
26

Я биостатист в том, что по сути является магазином R (~ 80 человек используют R в качестве основного инструмента). Тем не менее, я провожу примерно 3/4 своего времени, работая в Python. Я объясняю это прежде всего тем, что в моей работе используются байесовский и машинный подходы к статистическому моделированию. Python гораздо ближе к положительному положению производительности / производительности, чем R, по крайней мере для статистических методов, которые являются итеративными или основанными на моделировании. Если бы я выполнял ANOVAS, регрессионные и статистические тесты, я уверен, что я бы в первую очередь использовал R. Однако большая часть того, что мне нужно, недоступна в виде стандартного пакета R.

fonnesbeck
источник
5
+1 для определения того, в какой области статистики вы работаете. Существуют области статистических вычислений (например, анализ неструктурированного текста и компьютерное зрение), для которых существует множество функциональных возможностей в Python, и Python, по-видимому, является языком общения в этих поддоменах. Я думаю, что сообщество Python должно наверстать упущенное в улучшении структур данных и семантики классического статистического моделирования, в котором дизайн R так хорош. Разработчики scikits.statsmodels достигли значительного прогресса в этом направлении: scikits.appspot.com/statsmodels
Джош Хеманн,
26

Я хотел бы сказать, что с точки зрения человека, который сильно полагается на линейные модели в моей статистической работе и любит Python для других аспектов моей работы, я был очень разочарован в Python как платформе для выполнения чего-либо, кроме довольно базовой статистики.

Я считаю, что R имеет гораздо лучшую поддержку со стороны статистического сообщества, гораздо лучшую реализацию линейных моделей и, честно говоря, со стороны статистики, даже с такими отличными дистрибутивами, как Enthought, Python немного напоминает Дикий Запад.

И если вы не работаете в одиночку, вероятность того, что у вас есть соавторы, которые используют Python для статистики, на данный момент довольно мала.

оборота Фомите
источник
26

Там действительно нет необходимости отказываться от R для Python в любом случае. Если вы используете IPython с полным стеком, у вас есть расширения R, Octave и Cython, так что вы можете легко и без проблем использовать эти языки в своих ноутбуках IPython. У вас также есть поддержка для передачи значений между ними и вашим пространством имен Python. Вы можете выводить ваши данные в виде графиков, используя matplotlib, и как правильно отображаемые математические выражения. Есть множество других функций, и вы можете сделать все это в своем браузере.

IPython прошел долгий путь :)

Карл Смит
источник
19

То, что вы ищете, называется Sage: http://www.sagemath.org/

Это отличный онлайн-интерфейс для хорошо составленной комбинации инструментов Python для математики.

Адам
источник
4
Самое замечательное в Sage - это то, что он представляет собой объединение множества отличных бесплатных инструментов для математики, статистики, анализа данных и т. Д. Это больше, чем просто Python; у него есть доступ к R, максимумам, GLPK, GSL и многим другим.
Шаббычеф
18

Rpy2 - играть с R остаться в Python ...

Дальнейшая разработка по запросу Гунга:

Документацию по Rpy2 можно найти по адресу http://rpy.sourceforge.net/rpy2/doc-dev/html/introduction.html.

Исходя из документации, интерфейс высокого уровня в rpy2 разработан для облегчения использования R программистами Python. Объекты R представляются как экземпляры реализованных на Python классов, а функции R в качестве методов связываются с этими объектами в ряде случаев. Этот раздел также содержит введение в графику с графиками R: trellis (решетчатые), а также грамматику графики, реализованную в ggplot2, позволяющую создавать сложные и информативные графики с небольшим количеством написанного кода, в то время как базовая графика сетки позволяет обрисовать все возможные настройки.

Почему мне это нравится:

Я могу обрабатывать свои данные, используя гибкость python, превращать их в матрицу, используя numpy или pandas, выполнять вычисления в R и возвращать r объектов для последующей обработки. Я использую эконометрику, и у python просто не будет инструментов для статистики R., И R вряд ли когда-нибудь будет таким же гибким, как Python. Это требует от вас понимания R. К счастью, у него хорошее сообщество разработчиков.

Сам Rpy2 хорошо поддерживается, и господин, поддерживающий его, часто посещает SO форумы. Установка Windows может быть небольшой болью - https://stackoverflow.com/questions/5068760/bizzarre-issue-tring-to-make-rpy2-2-1-9-work-with-r-2-12-1-using -python-2-6-un? rq = 1 может помочь.

оборота питонометрист
источник
1
Добро пожаловать на сайт, @pythOnometrist. Я подозреваю, что это полезный вклад. Не могли бы вы дать краткое резюме Rpy2, чтобы читатели могли решить, действительно ли это то, что они ищут?
gung
17

Я использую Python для статистического анализа и прогнозирования. Как уже упоминалось выше, Numpy и Matplotlib - хорошие рабочие лошадки. Я также использую ReportLab для вывода PDF.

В настоящее время я смотрю на Resolver и Pyspread, которые представляют собой приложения для работы с электронными таблицами в стиле Excel, основанные на Python. Resolver является коммерческим продуктом, но Pyspread все еще с открытым исходным кодом. (Извините, я ограничен только одной ссылкой)

Turukawa
источник
1
Опять несколько интересных инструментов. Я знал о Numpy, Matplotlib и ReportLab, но Pyspread кажется интересной идеей. По крайней мере, я хотел бы печатать выражения Python в ячейках электронной таблицы. Хотя он не решает все возможные проблемы, он может быть полезен для создания прототипов и работы с данными.
Фабиан Фагерхольм
1
+1 Вау электронные таблицы Python! Еще не слышал о них. Я всегда хотел, чтобы OpenOffice / LibreOffice действительно включали и интегрировали скриптинг на Python в свои программы для работы с электронными таблицами
пользователь
15

отличный обзор до сих пор. Я использую python (в частности, scipy + matplotlib) в качестве замены matlab с 3 лет работы в университете. Иногда я все еще возвращаюсь, потому что я знаком с конкретными библиотеками, например, пакет вейвлетов Matlab просто великолепен.

Мне нравится http://enthought.com/ python. Он коммерческий, но бесплатный для академических целей и, насколько я знаю, полностью с открытым исходным кодом. Поскольку я работаю со многими студентами, перед использованием enthought им иногда было трудно установить numpy, scipy, ipython и т. Д. Enthought предоставляет установщик для Windows, Linux и Mac.

Два других пакета стоит упомянуть:

  1. ipython (поставляется уже с enthought) отличная улучшенная оболочка. хорошее введение на showmedo http://showmedo.com/videotutorials/series?name=PythonIPythonSeries

  2. nltk - набор инструментов на естественном языке http://www.nltk.org/ отличный пакет на случай, если вы захотите провести некоторую статистику / машинное обучение на любом корпусе.

kgarten
источник
12

Это интересный вопрос, с некоторыми отличными ответами.

Вы можете найти полезное обсуждение в статье, которую я написал вместе с Розелин Билиной. Окончательная версия находится здесь: http://www.enac.fr/recherche/leea/Steve%20Lawford/papers/python_paper_revised.pdf (с тех пор она почти в этой форме появилась как «Python для унифицированных исследований в области эконометрики и статистики»). ", в Econometric Reviews (2012), 31 (5), 558-591).

Стив Лоуфорд
источник
10

Возможно, не связано напрямую, но R имеет приятную среду графического интерфейса для интерактивных сессий (редактирование: на Mac / Windows). IPython очень хорош, но для среды, близкой к Matlab, вы можете попробовать Spyder или IEP. Мне повезло позже в использовании IEP, но Spyder выглядит более перспективным.

IEP: http://code.google.com/p/iep/

Spyder: http://packages.python.org/spyder/

А на сайте IEP приведено краткое сравнение соответствующего программного обеспечения: http://code.google.com/p/iep/wiki/Alternatives

JMS
источник
9

Я нашел отличное введение в панды, которое я предлагаю проверить. Pandas - это удивительный набор инструментов, предоставляющий возможности R для анализа данных высокого уровня с обширными библиотеками и качеством производства Python.

Этот пост в блоге дает отличное введение в Pandas с точки зрения начинающего:

http://manishamde.github.com/blog/2013/03/07/pandas-and-python-top-10/

оборота падаван
источник
3
Не могли бы вы написать несколько слов о том, какие качества делают его «великолепным», чтобы читатели могли заранее определить, подходит ли им просмотр?
whuber
1
Сожалею. Просто понял, что я приложил неправильную ссылку в моем оригинальном сообщении.
падаван
8

Я должен добавить крик о Sho, вычислительной среде, построенной на IronPython. Я использую его прямо сейчас в классе машинного обучения в Стэнфорде, и это было очень полезно. Он встроен в пакеты линейной алгебры и возможности построения диаграмм. Быть .Net легко расширить с помощью C # или любого другого языка .Net. Я понял, что гораздо легче начать работать с Windows, чем с обычными Python и NumPy.

pnewhook
источник
8

Никто не упомянул Orange раньше:

Интеллектуальный анализ данных с помощью визуального программирования или сценариев Python. Компоненты для машинного обучения. Дополнения для биоинформатики и интеллектуального анализа текста. Упакован с функциями для анализа данных.

Я не пользуюсь им ежедневно, но это обязательно нужно увидеть всем, кто предпочитает графический интерфейс, а не интерфейс командной строки.

Даже если вы предпочитаете последнее, с Orange хорошо знакомо, так как вы можете легко импортировать кусочки Orange в ваши скрипты Python, если вам понадобятся некоторые его функции.

Войцех Валчак
источник
7

Обратите внимание, что SPSS Statistics имеет встроенный интерфейс Python (также R). Таким образом, вы можете писать программы на Python, которые используют процедуры статистики и генерировать либо обычные красиво отформатированные выходные данные статистики, либо возвращать результаты в вашу программу для дальнейшей обработки. Или вы можете запускать программы на Python в потоке команд Statistics. Вам по-прежнему необходимо знать язык команд статистики, но вы можете использовать все возможности управления данными, вывода презентаций и т. Д., Которые предоставляет статистика, а также процедуры.

JKP
источник
7

Недавнее сравнение с DataCamp дает четкое представление о R и Python.

Использование этих двух языков в области анализа данных. Python обычно используется, когда задачи анализа данных должны быть интегрированы с веб-приложениями или если код статистики должен быть включен в производственную базу данных. R в основном используется, когда задачи анализа данных требуют автономных вычислений или анализа на отдельных серверах.

Я нашел это очень полезным в этом блоге и надеюсь, что это поможет другим также понять последние тенденции в обоих этих языках. Юля также подходит в этом районе. Надеюсь это поможет !

Ученик
источник
6

Я считаю, что Python - превосходный инструмент в моей области. Я много занимаюсь очисткой, обработкой данных, работой с большими данными, сетевым анализом, байесовским моделированием и симуляциями. Все эти вещи обычно требуют скорости и гибкости, поэтому я считаю, что Python работает лучше, чем R в этих случаях. Вот несколько вещей о Python, которые мне нравятся (некоторые упомянуты выше, а другие нет):

-Чистый синтаксис; более читаемый код. Я считаю Python более современным и синтаксически последовательным языком.

-Python имеет Notebook, Ipython и другие удивительные инструменты для совместного использования кода, совместной работы, публикации.

Блокнот iPython позволяет использовать R в коде Python, поэтому всегда можно вернуться к R.

-Существенно быстрее без обращения к C. Использование Cython, NUMBA и других методов интеграции C приведёт ваш код к скорости, сравнимой с чистым C. Это, насколько я знаю, не может быть достигнуто в R.

-Панды, Numpy и Scipy выдувают стандартный R из воды. Да, есть несколько вещей, которые R может делать в одной строке, но принимает Pandas 3 или 4. В целом, однако, Pandas может обрабатывать большие наборы данных, проще в использовании и обеспечивает невероятную гибкость в отношении интеграции с другими Python пакеты и методы.

Питон более стабилен. Попробуйте загрузить 2-гигабайтный набор данных в RStudio.

-Один изящный пакет, который, кажется, не упоминался выше, это PyMC3 - отличный общий пакет для большинства ваших байесовских моделей.

-Некоторые, упомяните выше ggplot2 и grub о его отсутствии в Python. Если вы когда-либо использовали графические функции Matlab и / или использовали matplotlib в Python, то вы будете знать, что последние опции, как правило, гораздо более эффективны, чем ggplot2.

Однако, возможно, R легче изучать, и я часто использую его в тех случаях, когда я еще не слишком знаком с процедурами моделирования. В этом случае глубина готовых статистических библиотек R непобедима. В идеале, я бы знал оба достаточно хорошо, чтобы иметь возможность использовать при необходимости.

Джин Бурин
источник
5

Для тех, кто должен работать под Windows, Anaconda ( https://store.continuum.io/cshop/anaconda/ ) действительно очень помогает. Установка пакетов под Windows была головной болью. Установив Anaconda, вы можете настроить готовую к использованию среду разработки с помощью одной строки.

Например, с

conda create -n stats_env python pip numpy scipy matplotlib pandas

все эти пакеты будут загружены и установлены автоматически.

Yu-Yang
источник
5

Python должен пройти долгий путь, прежде чем его можно будет сравнить с R. У него значительно меньше пакетов, чем у R, и его качество ниже. Люди, которые придерживаются основ или полагаются только на свои пользовательские библиотеки, вероятно, могли бы выполнять свою работу исключительно на Python, но если вы тот, кому нужны более продвинутые количественные решения, я осмелюсь сказать, что ничто не приближается к R.

Следует также отметить, что на сегодняшний день в Python нет надлежащей научной среды разработки в стиле Matlab, сравнимой с R-Studio (пожалуйста, не говорите, Spyder), и вам нужно все проработать на консоли. Вообще говоря, весь опыт работы с Python требует большого количества «гиков», которого не хватает большинству людей, и его это не волнует.

Не поймите меня неправильно, я люблю Python, на самом деле это мой любимый язык, который, в отличие от R, является настоящим языком программирования. Тем не менее, когда дело доходит до чистого анализа данных, я зависим от R, который на сегодняшний день является наиболее специализированным и разработанным решением на сегодняшний день. Я использую Python, когда мне нужно объединить анализ данных с разработкой программного обеспечения, например, создать инструмент, который будет выполнять автоматизацию методов, которые я сначала запрограммировал в грязном R-скрипте. Во многих случаях я использую rpy2 для вызова R из Python, потому что в подавляющем большинстве случаев пакеты R намного лучше (или вообще не существуют в Python). Таким образом я пытаюсь получить лучшее из обоих миров.

Я все еще использую Matlab для разработки чистого алгоритма, так как мне нравится его синтаксис и скорость в математическом стиле.

оборота Дигио
источник