[Python, Визуализация данных, Машинное обучение] Мы скачали 10 миллионов Jupyter-ноутбуков с Github — и вот что мы выяснили

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
18-Дек-2020 08:32

Привет, Хабр! На связи команда Datalore by JetBrains. Хотим поделиться с вами результатами анализа нескольких миллионов публично доступных репозиториев Github с Jupyter-ноутбуками. Мы скачали ноутбуки, чтобы немного больше узнать в цифрах о текущем статусе, пожалуй, самого популярного инструмента для data science.
Вдохновившись исследованием, проведенным командой Design Lab из UC San Diego, мы дважды скачали Jupyter-ноутбуки: в октябре 2019 и в октябре 2020. Два года назад в открытом доступе было 1,23 миллиона ноутбуков. В октябре 2020 года число ноутбуков выросло в 8 раз, и мы смогли скачать 9,72 миллиона файлов. Этот датасет мы сделали публичным — инструкцию по скачиванию можно найти в конце поста.Все цифры и графики были подсчитаны в этом Datalore ноутбуке. Datalore — это онлайн Jupyter-ноутбуки с умной поддержкой кода, которые мы делаем в JetBrains. Вы можете создать копию ноутбука, перейдя по ссылке, и работать с данными в Datalore.Мы будем рады, если вы захотите поработать с данными и провести собственный анализ. Делитесь с нами результатами, отмечая в Твиттере @JBDatalore или написав нам на contact@datalore.jetbrains.com. Теперь перейдем к цифрам.Язык data scienceНесмотря на большой рост популярности R и Julia в последние годы, Python остается лидирующим программным языком для Jupyter-ноутбуков.Помимо этого встречаются ноутбуки, написанные на Bash, MatLab и Scilab, а также на языках, с которыми ноутбуки ассоциируются, пожалуй, в последнюю очередь: Scala, C++ и Java.На графике можно посмотреть распределение языков программирования в ноутбуках. Ноутбуки, язык которых не был указан в метаданных, относятся к категории “nan”.
В табличке можно увидеть разницу в процентах использования Python 2 и Python 3 в ноутбуках в 2018, 2019 и 2020 годах.Python 2Python 3Other languagesИсследование 201852,5%43,8%3,7%Исследование 2019 (JetBrains Datalore)18,1% (всего 1029 K)72,6% (всего 4128 K)9,3% (всего 529 K)Исследование 2020 (JetBrains Datalore)11,8% (всего 1154 K, +125 K к 2019)79,3% (всего 7710 K, +3582 K к 2019)10,8% (всего 1050 K, +521 K к 2019)Количество ноутбуков, написанных на Python 3, увеличилось с 2019 года на 87%, а количество ноутбуков с Python 2 — на 12%.На графике ниже можно увидеть распределение количества ноутбуков, написанных на Python и R, по версиям языков:
Топ библиотек data scienceЧтобы помочь пользователям Datalore начать работу с ноутбуками как можно быстрее, мы предустановили самые используемые Python-библиотеки. Для этого мы посчитали статистику импортов в скачанных Jupyter-ноутбуках.Не оказалось неожиданностью, что 60% ноутбуков содержат в списке зависимостей Numpy, 47% импортируют Pandas и Matplotlib.Более подробную информацию можно увидеть на графике:
Самые популярные комбинации библиотек:
Рост PyTorch и TensorFlowЧлены нашей команды интересуются библиотеками для глубинного обучения, и мы решили сравнить рост библиотек PyTorch и TensorFlow.Из таблицы ниже можно увидеть, что число импортов у PyTorch растет значительно быстрее, чем у TensorFlow.В то же время нужно учитывать, что библиотека Keras может использовать TensorFlow в качестве транзитивной зависимости, а Fast.ai использует PyTorch в качестве зависимости. Это означает, что скорость роста TensorFlow, вероятно, выше, но мы не можем говорить с уверенностью, какая из библиотек больше использовалась в последние годы.TensorFlowKerasPyTorchFastaiИсследование 2019 (JetBrains Datalore)321 K231 K110 K19 KИсследование 2020(JetBrains Datalore)430 K (+34%)367 K(+59%)253 K(+130%)25 K(+32%)Содержание ячеек в ноутбукахНемного общих цифр относительно ячеек (данные подсчитаны для ноутбуков, написанных на Python 3.6 и выше):
  • 71,90% ноутбуков содержат Markdown.
  • 42,13% ноутбуков содержат графики или картинки в output.
  • 12,34% ноутбуков содержат LaTex.
  • 19,77% ноутбуков содержат HTML.
  • 20,63% ноутбуков содержат код внутри Markdown.
Markdown очень широко используется в Jupyter-ноутбуках. 50% ноутбуков содержат более 4 ячеек Markdown и более 14 ячеек кода. Графики ниже показывают распределения Markdown-ячеек и ячеек с кодом:
На графике ниже можно увидеть распределение количества строк кода. Хотя существуют отдельные экземпляры ноутбуков, имеющие более 25 000 строк кода, 95% ноутбуков содержат менее 465 строк:
Использование графиков тоже популярно. Выше мы упоминали, что 42% ноутбуков содержат визуализации. 10% этих ноутбуков содержат более 8 изображений.
Воспроизводимость Jupyter-ноутбуковДля Jupyter-ноутбуков существует проблема — не всегда готовый ноутбук можно воспроизвести. Зачастую это означает, что ячейки были выполнены автором не в прямой последовательности. Мы проверили порядок выполнения ячеек кода всех доступных Jupyter-ноутбуков и выяснили, что 36% Jupyter-ноутбуков выполнены в нелинейном порядке, т. е. при исполнении кода линейно результат выполнения может отличаться.Мы стали смотреть детальнее, зависит ли порядок выполнения кода в ноутбуке от количества Markdown-ячеек и ячеек кода. Не удивительно, но оказалось, что, чем меньше ячеек кода в ноутбуке, тем меньше вероятность, что код выполнен в линейном порядке.
Количество Jupyter-ноутбуков невероятно выросло за последние годы, и в этом исследовании мы постарались побольше узнать об этом очень популярном инструменте работы над задачами data science. Мы надеемся, что статья была для вас интересной и вдохновила на дальнейший анализ. Посмотреть, как мы получили графики и цифры, можно в этом Datalore-ноутбуке.СсылкиПредыдущее исследование 2018 годаНоутбук в Datalore с предобработанными даннымиИнструкция по получению доступа к данным:
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_python, #_vizualizatsija_dannyh (Визуализация данных), #_mashinnoe_obuchenie (Машинное обучение), #_jupyter_notebooks, #_data_science, #_datalore, #_analiz_dannyh (анализ данных), #_jupyter, #_python, #_mashinnoe+obuchenie (машинное+обучение), #_jetbrains, #_issledovanie (исследование), #_vizualizatsija (визуализация), #_blog_kompanii_jetbrains (
Блог компании JetBrains
)
, #_python, #_vizualizatsija_dannyh (
Визуализация данных
)
, #_mashinnoe_obuchenie (
Машинное обучение
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 17:43
Часовой пояс: UTC + 5