57 отборных репозиториев для всех разработчиков Python

Автор оригинала: Angelica Dietzel
  • Перевод
Специально к старту нового потока курса «Python для веб-разработки» представляем подборку из 57 репозиториев, которые будут полезны как начинающему, так и опытному разработчику: это репозитории с ответами на вопросы собеседований, репозитории с книгами, небольшие, но полезные консольные инструменты и проекты, которые вдохновят вас написать красивый, работающий и полезный код.






Эксперт вы или начинающий разработчик — не важно. В любом случае вы задаете себе такие вопросы:

  • Как выглядит хороший, чистый код?
  • Где я могу научиться писать код лучше?
  • Как стать лучше в профессии?

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

Почему Python?


Разработчики со всего мира выбрали Python основным языком многих проектов. Python — это простой в использовании язык. Он универсален, у него большая коллекция пакетов, которая удерживает и привлекает новых разработчиков. Немного фактов:

  • Python считается одним из лучших инструментов для Data Science.
  • Это второй по популярности язык на GitHub.
  • Python — самый популярный язык в ML.
  • Тренды поиска в Google 2019 года ставят Python на второе место по популярности среди языков в сети.
  • В репозитории пакетов Python содержится 147 000 пакетов.
  • Согласно StackOverflow именно Python — наиболее предпочтительный язык.

Итак, список


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

1. Книги.
2. Собеседования.
3. Обучение.
4. Крутые проекты.
5. Фреймворки, модули, инструменты.

1. Книги.


Hitchhiker’s Guide to Python от Real Python (21.9к ★)


Эта книга — руководство по установке, настройке и применению Python.

Python Machine Learning от Sebastian Raschka и Vahid Mirjalili (1.6к ★)


Блокноты с кодом из классических учебников ML.

Cosmic Python (1.3к ★)


Книга об архитектуре приложений на Python в смысле управления сложностью.

Byte of Python от Swaroop C H (1.3к ★)


Книга для начинающих. Прочитайте ее, если программирования для вас неизвестная область.

2. Собеседования.


Cracking the Coding Interview от Bogdan (140 ★)


Решения вопросов с собеседований, представленных в шестом издании «Cracking the Coding Interview» (CTCI).

Interactive Coding Challenges от Donne Martin (21.2к ★)


Более 120 интерактивных задач по кодированию Python (алгоритмы и структуры данных) — поставляется с картами программы для запоминания Anki.

Python Interview Questions от Ian Stapleton Cordasco (108 ★)


Список вопросов, которые могут быть заданы работодателями Python

300 Python Interview Questions от Learning Zone (64 ★ы)


Более 300 вопросов на собеседовании по Python.

3. Обучение.


The Algorithms/Python от The Algorithms (91.5к ★)


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

Awesome Python от Vinta Chen (88.7к ★)


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

Full Speed Python от João Ventura (2.9к ★)


Это книга для самообразования. Она призвана научить Python через практику.

Python Robotics от Atsushi Sakai (10.6к ★)


Примеры кода на Python для робототехники.

Learn Python 3 от Jerry Pussinen (2.8к ★)


Блокноты Jupyter Notebook для преподавания и обучения Python 3.

Learn Python от Oleksii Trekhleb (5.3к ★)


Песочница и список трюков Python. Коллекция скриптов Python, разделенная по темам и содержащая примеры кода с пояснениями.

Python Reference от Sebastian Raschka (2.5к ★)


Полезные функции, учебники и другие связанные с Python вещи.

Manim от 3b1b (27.8к ★)


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

NLTK от NLTK (9.4к ★]


Коллекция библиотек и инструментов с открытым исходным кодом для обработки естественного языка.

Free programming books от Free Ebook Foundation (164к ★)


Бесплатные книги по программированию. Есть раздел Python с большим количеством бесплатных электронных книг.

100 Days of ML Code от Avik Jain (30.5к ★)


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

D2L от Dive Into Deep Learning (8к ★)


Интерактивный углубленный учебник с кодом, математикой и дискуссиями. Работа идет с несколькими фреймворками. Принято в 140 университетах и 35 странах.

Models от TensorFlow (67.1к ★)


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

TensorFlow examples от Aymeric Damien (39.2к ★)


Справочник для всех, кто начинает работать с фреймворком машинного обучения Google TensorFlow. Содержит множество примеров кода, демонстрирующих все, начиная от базовых операций TensorFlow и заканчивая построением нейронных сетей.

Project Based Learning от Tu V. Tran (40к ★)


Список ориентированных на проекты учебников по программированию, в том числе по созданию веб-скреперов, приложений, ботов и т.д.

Coding Problems от Meto Trajkovski (1.4к ★)


Решения различных проблем кодирования/алгоритмики и множество полезных ресурсов для изучения алгоритмов и структур данных.

Крутые проекты


Airflow от Apache (19.1к ★)


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

Hug от Hug API (6.4к ★)


Цель Hug — сделать разработку API на Python как можно проще.



Rebound от Jonathan Shobrook (3.4к ★)


Инструмент командной строки, при возникновении исключения немедленно показывающий результат со Stack Overflow — [прим. перев. — сайта с ответами на вопросы по программированию].

You Get от Mort Yao (36.9к ★)


Крошечная утилита командной строки для загрузки медиаконтента (видео, аудио, изображений) из интернета.

Snallygaster от Hanno Böck (1.7к ★)


Инструмент сканирования на предмет скрытых файлов на серверах HTTP.

DeepFaceLab от iperov (21.1к ★)


Инструмент, который может создавать изображения и видео DeepFake, позволяя вам делать много забавных вещей, например, удаление и замена лиц.


Пример обмена лицами.

Photon от Somdev Sangwan (7.2к ★)


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

ZeroNet от ZeroNet (16.2к ★)


Децентрализованные веб-сайты с помощью криптовалюты Bitcoin в сети BitTorrent.



Gym от OpenAI (22.6к ★)


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

Detectron от Facebook Research (23.8к ★)


Исследовательская платформа Facebook AI Research (исследования искусственного интеллекта Facebook) для исследования обнаружения объектов, реализующая популярные алгоритмы, такие как Mask R-CNN и RetinaNet.


Пример вывода Mask R-CNN через Detectron

Magenta от Magenta (15.9к ★)


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

Mopidy от Mopidy (6.7к ★)


Расширяемый музыкальный сервер — он воспроизводит музыку с локального диска, Spotify, SoundCloud, Google Play Music и других сервисов.

Face Recognition от Adam Geitgey (37.1к ★)


Распознавайте и управляйте лицами на Python или из командной строки с помощью самой простой в мире библиотеки распознавания лиц.


Определение изображения Джо Байдена с помощью инструмента распознавания лиц.

Wagtail от Wagtail (9.6к ★)


Система управления контентом на Django, ориентированная на гибкость и впечатления пользователей.

YAPF от Google (11.2к ★)


Берет код и переформатирует его в лучший формат в соответствии с вашим руководством по стилю, даже если первоначально код не нарушал руководство.

Zulip (12.8к ★)


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

4. Фреймворки, модули, инструменты.


Dash от Plotly (13.3к ★)


Фреймворк Python для создания аналитических веб-приложений без JavaScript.


Приложение-карта с указанием дат открытия магазинов Walmart. Изображение на Plotly.

Django (53.5к ★)


Django — это веб-фреймворк Python высокого уровня, который способствует быстрой разработке и чистому, прагматичному дизайну.

scikit-learn от scikit-learn (42.9к ★)


Модуль Python для машинного обучения, созданный на основе SciPy.

Falcon от Falconry (8.1к ★)


Серьезный, минималистичный фреймворк REST-сервисов и серверной части приложений для разработчиков Python с акцентом на надежность, корректность и производительность в масштабе.

Flask от Pallets (52.8к ★)


Flask — это легкий WSGI фреймворк для веб-приложений. Он разработан, чтобы сделать начало работы быстрым и легким, есть возможность масштабирования до сложного приложения.

Keras от Keras Team (2.1к ★)


Высокоуровневый API нейронных сетей, написанный на Python и способный работать поверх TensorFlow, CNTK или Theano. Он разработан с упором на возможность быстро экспериментировать.

Kivy от Kivy (12.1к ★)


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

NumPy от NumPy (15.4к ★)


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

pandas от pandas (27.2к ★)


Гибкая и мощная библиотека для анализа и обработки данных для Python, предоставляющая структуры маркированных данных.

Requests от Python Software Foundation (43.9к ★)


Библиотека Python, которая позволяет отправлять запросы HTTP/1.1, добавлять заголовки, данные форм, составные файлы и устанавливать параметры с помощью простых словарей Python.

SciPy от SciPy (7.7к ★)


Мультидоменная библиотека Python с открытым исходным кодом для Data Science, которая охватывает естественные науки, математику и инженерию.

Seaborn от Michael Waskom (7.8к ★)


Библиотека для визуализаций, основанная на Matplotlib и предлагающая дополнительный уровень настройки графиков и диаграмм, созданных Matplotlib.

Statsmodels от Statsmodels (5.7к ★)


Статистический модуль, предлагающий различные классы и функции для множества статистических моделей, делающий возможным статистический анализ и исследование данных.

Theano от Theano (9.3к ★)


Theano — это библиотека, которая позволяет эффективно определять, оптимизировать и оценивать математические выражения, включающие многомерные массивы.

Tornado от Tornado Web (19.6к ★)


Веб-фреймворк Python и библиотека асинхронных сетей, первоначально разработанные FriendFeed.

Visdom от Facebook Research (7.7к ★)


Гибкий инструмент для создания, организации и совместного использования визуализаций меняющихся, насыщенных данных. Поддерживает Torch и Numpy.



Matplotlib от Matplotlib (12.6к ★)


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

Заключение


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

image



Рекомендуемые статьи


SkillFactory
Школа Computer Science. Скидка 10% по коду HABR

Комментарии 15

    0

    Дорогие Python разработчики! Вы, может, и умеете программировать, но совершенно не умеете гуглить? Слышали про Cracking the coding interview, но внезапно забыли о google.com? Хотите заниматься machine learning, но из-за медленного перемножения матриц ничего не выходит? Морально готовы сделать REST API, но, хоть убей, не можете найти ни одного веб-фреймворка? Эта статья — для вас!

      0

      Думаю, инфа скорее для начинающих в ИТ в целом и в Питоне в частности, да и для желающих расширить кругозор тоже. Мне такая статья была бы очень кстати лет 5 назад, и я рад, что подобный контент есть сейчас, можно делиться со своими студентами и просто знакомыми.

        +1

        И как начинающему помогает знание


        NumPy от NumPy (15.4к ★)

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

        Вот серьезно — с какой стороны нужно "зайти в айти", чтобы с одной стороны уже быть способным что-то вынести из такого вот списка библиотек, а с другой — не быть способным нагуглить самостоятельно "awesome python"?


        Вот упомянут этот NumPy — что с этими знаниями делать? Либо человек сам приходит к пониманию "хочу инструмент для работы с n-мерными массивами" — и за 2 минуты находит этот самый NumPy в гугле, либо человек проходит курс/читает книжку по какому-нибудь ML, и там все примеры — на NumPy.


        Какие ещё бывают сценарии в которых есть человек, которому нужен NumPy, но человек про NumPy ничего не знает — и их разделяет такое вот кратенькое упоминание в случайной статье на хабре?

          0

          Например, человек, вошедший в айти из вэба и не знавших о доступных математических инструментах, клепающий всё стандартными средствами языка. Или увидит другой веб-фреймворк. Или начинающий аналитик узнает об альтернативных/смежных инструментах. Да, если прям надо и горит, то нагуглит сам (но, зная студентов и стажёров, могу сказать, что многие из них гуглить не особо умеют, тем более на английском), а если не надо, то из интереса может посмотреть, составить представление, и, когда возникнет потребность, решение уже будет в голове.
          Что за шквал критики такой?) Или вы считаете, что лишь ваш подход к жизни и работе единственно верный, а все публикуемые здесь статьи должны соответствовать лично вашим критериям значимости?

            0
            многие из них гуглить не особо умеют, тем более на английском

            Вот-вот — поддержим убогих, вывалим на хабр кучу бесполезного мусора, которая на раз гуглится при малейшей заинтересованности.


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

              0

              Я всецело поддерживаю эти и схожие ценности, но ваши высказывания всё же исполнены чёрно-белым максимализмом, словно здесь лженаука и ссылки на примеры левого грязного кода, а не репозитории качественных проектов мирового класса (:

                0

                Именно лженаука — коллекционирование марок. Единственный способ найти эту статью должен быть запрос "я полный идиот питон помогите". Это не для всех, понимаете? Это для какого-то меньшинства, которое я толком даже идентифицировать не могу. Ленивые незамотивированные продавцы гамбургеров, которые уверены, что знания могут быть только приняты, но не добыты.


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

                  0

                  Опять же, это какой-то кипящей максимализм :) Во-первых, лженаука это о продвижении теорий, идущих вразрез с современными научными взглядами и доказательствами, здесь ничего подобного нет, лишь формат статьи, который вам не заходит. Во-вторых, с чего вы решили, что способ самостоятельного поиска знаний единственно верный, а изучение окружающей информации нет, зачем мотаться из крайности в крайность? Оба способа хороши. Например, Андроид-разработчик будет целенаправленно изучать нужные ему технологии, но также может интересоваться другими; он их не будет гуглить, т.к не шарит и нет резона целенаправленно разбираться в сотнях фреймворков и фич, десятков направлений ИТ; зато вполне может интересоваться ими в пассивном ключе, и такая статья ему может зайти. Как и мне заходят не самые детальные статьи о той же мобильной разработке, геймдеве и т.д. Хабр это ж не энциклопедический сборник, есть материалы очень разных форматов, и здесь в принципе всё не для всех, потому будьте проще, вам не обязана нравиться каждая статья :)

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

                    А? Зачем это написано?


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

                    У нас есть целый интернет окружающей информации. Статья, которую мы обсуждаем — это даже не информация, это копипаст. Оно уже было в интернете (и не лезло ко мне), теперь его в интернете два (и оно у меня зачем-то вылезло).


                    Например, Андроид-разработчик… может интересоваться ими в пассивном ключе, и такая статья ему может зайти.

                    Да, можно перед телевизором сидеть по 16 часов и называть это "развивать кругозор и быть в курсе происходящего в мире".


                    Хабр это ж не энциклопедический сборник, есть материалы очень разных форматов, и здесь в принципе всё не для всех

                    Что вы сказать-то пытаетесь? Мне настолько сильно не понравилась статья, что я не поленился нажать минус и расписать причины. Вам не нужно меня убеждать, что я делаю что-то не так. Я всё делаю как надо — как часть сообщества я даю обратную связь автору статьи. Если эти комментарии кого-то склонят на мою сторону — здорово, будут ещё минусы. Если не склонят, то и ладно — буду знать, что сообщество не разделяет моих ценностей.


                    потому будьте проще, вам не обязана нравиться каждая статья

                    Будьте скромнее и не лезте с советами.

                    0
                    Мда… Хорошо, что такие чёрно-белые максималисты как вы водитесь исключительно в пределах айти, потому как к настоящему промышленному инжинирингу подпускать таких, готовых выжечь напалмом всего лишь за подборку полезных ресурсов, ни в коем случае нельзя.
                      0

                      Не за подборку — за навязывание. Напалмом, да.

        +1
        Matplotlib…
        Библиотека для создания двухмерных графиков.

        Не уверен, что это верная формулировка


        from matplotlib import pyplot
        from mpl_toolkits.mplot3d import Axes3D
        ...

        image

          0

          Мне кажется, фреймворки и библиотеки было бы лучше отсортировать по категориям, а то тут вперемешку и сервера, и ML-фреймворки, и графические инструменты, хаотично чередуясь много раз… Не знаю, как в оригинале, но даже если так же, то народ вам был бы лишь благодарен за систематизацию, т.к контент реально стоящий, особенно для новичков в мире Питона :)

            +1

            Таких статей — как грязи. Вот есть нормальный список: https://awesome-python.com/ собранный 387 участниками, а не одной вайтишной девочкой с 52 коммитами на гитхабе за последний год.

            0
            Detectron от Facebook Research

            Только Detectron уже больше года назад заменен на Detectron2, что и указано в первой строчке README.md самого Detectron:
            Detectron is deprecated. Please see detectron2, a ground-up rewrite of Detectron in PyTorch.

            Таким образом, всё что написано автором можно ставить под сомнение.

            p.s. SkillFactory — ясно понятно теперь чему там учат

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

            Самое читаемое