Комментарии 22
На всякий случай автора оригинала представлю. Статья из раздела «Мнения».
Количество просмотров статьи в оригинале: 2M+
Data Scientist, MSc Analytics & MBA student
Далее, скопировано с его сайта.
I'm currently pursuing a Master of Science in Analytics at Georgia Institute of Technology in hopes to broaden my arsenal of analytical skills as a data scientist so that I can tackle larger and more complex problems. I've also obtained my Bachelor of Commerce from Queen's University. Learning about finance, marketing, and economics allowed me to develop an understanding of how the world works.

In my spare time, I like to learn — I've completed several data science projects and I'm completing a Deep Learning specialization. I also enjoy all kinds of physical activities, especially team sports. I have an interest in social psychology and personality traits. I enjoy all kinds of EDM music and have created several EDM mixes on YouTube! And lastly, as a Christian, I'm constantly on a spiritual journey.
  1. Есть огромное количество готовых хорошо оптимизированных библиотек и легко создавать биндинги для новых.
  2. Уже очень много чего написано на Python, а значит проще и дешевле тоже писать на Python.
  3. Есть REPL и интерактивные тетрадки Jupyter, которые облегчают первичный анализ данных (главное, сильно ими не увлекаться).
  4. Язык очень простой.

Ну и в целом не только Python на самом деле.

1, 2 и 4 — это общие достоинства Питона, из них уникальное для Питона только 4.
Вообще, тема довольно животрепещуща для меня. Не только в контексте анализа данных, хотя и в этом контексте тоже. Гуглёж выдаёт очень много досужих вымыслов и домыслов относительно сравнения Питона с другими языками. Хотелось бы где-то почитать грамотный анализ того, где Питон превосходит прочие языки (ну кроме простоты), а главное, почему.

Не могу назвать питон простым языком, извините. По крайней мере лично у меня писать что-то, отличное от скриптов на полсотни строк, у меня не получается.

Хотелось бы где-то почитать грамотный анализ того, где Питон превосходит прочие языки (ну кроме простоты), а главное, почему.

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


ИМХО. Утверждение о простоте Python верно только для уровня базового синтаксиса (да и это спорный вопрос). Переход от скриптов к многокомпонентным программам и многопоточности сводит на нет показную простоту базового синтаксиса, и язык по сложности становится эквивалентен другим интерпретируемым языкам высокого уровня. Скажем, для меня Python не выглядит сильно проще того же Perl, а PHP выглядит проще, чем Python. Также, думаю, Python в общем будет всё же попроще, чем, скажем, Rust, Java, Scala, C++. В целом, сила Python заключается именно в богатстве его библиотек — в прошлом маркетинговое преимущество Perl. В частности, есть крутейшие математические библиотеки, в том числе для символьной математики. Хочется работать с машинным обучением — есть библиотеки на все случаи жизни (по крайней мере, так говорят, я сам пока туда не лез). Нередко библиотеки под капотом реализованы на быстрых компилируемых языках, что тоже плюс. Можно быстро писать GUI, Web и консольные утилиты (в последнем случае Python стремится к замене Perl у системных администраторов). Как бы там ни было, если хочется выделить самую главную причину изучить Python — это, несомненно, библиотеки.

«Почему именно питон» что? Изучать сейчас? Потому что это дефолтный язык научных сотрудников, которым нужно программирование для своей работы. Почему он таким стал? Сам не знаю, видимо потому что простой.
«Почему именно питон» что?

Почему автор рекомендует:
Изучите Python и SQL.


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

Иными словами, если есть задача по дата анализу, и есть знание другого языка, то вообще-то нет нужды учить именно Питон, а лучше поучить именно анализ данных с тем языком, которые есть в активе? Научных сотрудников на данной задаче не предполагается.

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


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

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

R очень целостный язык и очень гибкий. Во втором пункте как раз проблема — что стиль разных библиотек может очень сильно отличаться. Фактически, будут совсем разные DSL.
Насчет интеграции — вроде со всем, с чем надо заинтегрирован. С++ можно практически инлайн писать.

Теоретически нет нужды учить именно его, но практически написано огромное количество библиотек для него, в которых зашита как вся нужная математика, так и алгоритмы анализа, визуализации и предподготовки данных, машинного обучения, глубокого обучения, работы с изображениями и текстом именно в контексте глубокого обучения. При этом библиотеки написаны на C++, так что они работают очень быстро. Чтобы написать то же самое для другого языка, который есть в активе понадобится столько человеко-часов, что не хватит и жизни. Ну, разве только это не язык R.

Возможно, это особенность немецкого подхода или предметной области, но у нас на учёбе почему-то в ходу больше R для всех сколько-нибудь связанных со статистикой дисциплин (Foundation in Statistics, Advanced Biometrical Methods, Methodology for clinical trials).

"Новая теория начинает господствовать когда вымирают сторонники старой." Подождите, и через пяток лет R перестанут использовать.

Отнюдь. Нельзя назвать вымирающим то, что очень активно развивается.

В этом году R ворвался в ТОП 10 языков программирования.

Я погружаю одного бухгалтера в область работы с данными и могу смело выделить несколько доводов "за" питон с точки зрения "с нуля"
1) Есть шустрая библиотека Pandas, которая является чем то средним между SQL и Excel. У Pandas порог вхождения выше, чем у SQL, но всё ещё на приемлимом уровне для овладевания из не-IT профессий.
2) Есть Jupyter как среда разработки. Установка не требует прав администратора, а редактор кода позволяет очень интуитивно разделять код на блоки с моментальным выводом результатов, добавляя визуальности этому виду программирования. Это ещё больше снижает порог входа.
3) Питон — это интерпретируемый язык программирования, в нем можно программировать "на лету", не теряя данных из памяти. Это ускоряет проведение экспериментов по подтверждению гипотез с данными, начиная от проверки качества на входе, и заканчивая бизнес выводами.
4) Широта документирования и вопрос-ответов от коммьюнити, позволяет с высокой степенью результативности отправить джуна гуглить готовый ответ.


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

Самый популярный язык на данный момент, бесплатный. Чем популярнее, тем больше документации и гайдов, научных трудов. Можно работать на языке R, но он вроде как не предоставляет широкий спектр возможностей, он хорош для статистических данных и их отрисовке (box plot и т.д)
А на питоне можно запарсить, написать бот, сделать игрушку, автоматизировать действия, написать код для микроконтроллеров ну и т.д. Т.е он универсальный и дает запас на корректировку рода проф. деятельности.
Мне кажется, что в целом просто «звезды сошлись» — это неплохой язык, которому повезло оказаться в нужном месте в нужное время и он просто взлетел вместе с одним из своих трендов.
Основной аргумент — простота входа и работы. Динамическая типизация, мощные инструменты из коробки — если отложить неочевидный bash, это самый первый инструмент базовой обработки данных и скриптов автоматизации исторически. Аналитики пользовались питоном «еще когда это не было модным», программисты тоже используют его — даже если не основной язык, а как скриптовой или для автоматизации.
Поэтому когда тема начала взлетать — это оказался самый распространенный инструмент с нужными плюшками.
Мне кажется хорошая аналогия с js — язык со своими плюсами и минусами, но он пришелся на рост интернета и браузеров, где был ультимативным решением, и вырос с ними. А по мере роста пришли люди, которые по возможности начали его развивать и разрешать проблемы с ним, что улучшило язык.

На самом деле можно найти языки и попроще Питона, и побыстрее, и REPL есть у многих, и тетрадки Jupyter поддерживают кучу языков. И по статистическим библиотекам R может с питоном конкурировать.
Реальная причина одна — это мэйнстрим, на нем все пишут.
Это как естественные языки — лучше всего выучить английский, если нет очень веских причин учить что-либо другое.

5. Пайтон — выразительный язык, позволяющий научные записи писать так, как они есть. То есть близость к математической нотации. Взять, например, С++, то там такого слишком мало. Вызовы функций — ни о чем.
Пайтон — выразительный язык, позволяющий научные записи писать так, как они есть. То есть близость к математической нотации.

Как мне в питоне определить функцию трёх аргументов ι, ε, τ, которую можно было бы вызывать синтаксисом [ ι ↦ ε ] τ?

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.