Питон – язык программирования, который выделяется разнообразием возможностей. Он становится все более популярным среди разработчиков. Позволяет создавать как сложные приложения, так и веб-контент.
Python – язык, который используется в работе крупных предприятий и мелких организаций. Его код легко читается и корректируется при необходимости. Можно использовать его для нейронных сетей и алгоритмов машинного обучения. Для реализации поставленной задачи Python предусматривает наличие определенных библиотек. О них будет рассказано далее. Информация поможет как новичкам, так и опытным разработчикам.
Питон – определение
Python – скриптовый высокоуровневый язык общего назначения. Универсален, за счет чего позволяет создавать программное обеспечение не только для компьютеров, но и для мобильных платформ.
Обладает динамической строгой типизацией, а также автоматическим управлением памятью. Есть элементы ООП, которые позволяют составлять программные коды в два счета. Оснащен весьма мощным функционалом.
О библиотеках
Библиотека – своеобразный файл, хранящий в себе элемент кода. Шаблон, который можно использовать для более быстрой разработки.
Средство придумано для того, чтобы часто повторяющиеся кодификации, отвечающие за тот или иной функционал, не приходилось каждый раз прописывать вручную. Достаточно просто открыть файл библиотеки и вставить туда собственные данные. Есть не только в Python, но и в иных языках программирования.
Стоит также обратить внимание, что есть еще и фреймворки – интерфейсы и инструменты, которые позволяют разработчику создавать разного рода модели машинного обучения. Для реализации поставленной задачи не требуется погружаться и вникать в суть имеющихся алгоритмов.
Внимание: некоторые программеры называют фреймворки библиотеками. Это не совсем правильно. Framework может быть представлен библиотекой или их набором.
Понятие машинного обучения
Машинное обучение – специализированный способ, который позволяет обучать устройства и компьютеры без программирования. Подраздел искусственного интеллекта, а также науки об информации.
Машинное обучение и Python тесно связаны. Для соответствующего способа создаются утилиты на Питоне. Они имитируют навыки пользователей, которые опираются на анализ данных. Соответствующий «алгоритм» чаще всего относится к Big Data.
Почему Питон
Python – язык программирования, который позволяет осуществлять продуктивную разработку. Нужно знать, почему именно его рекомендуется применять при Machine Learning. На то есть несколько причин:
- наличие весьма мощных встроенных библиотек;
- пологая кривая изучения;
- простое интегрирование;
- открытый программный код;
- простота создания прототипов;
- наличие объектно-ориентированной парадигмы;
- кроссплатформенность;
- производительность на достаточно высоком уровне;
- понятный даже новичку синтаксис;
- переносимость.
Разработчику не придется изучать много информации для того, чтобы составлять утилиты для machines learn. Контент, получаемый на выходе, хорошо совместим со всеми существующими операционными системами, включая Linux.
Основные libraries
Далее будут рассмотрены библиотеки Python, которые помогут в ML. Условно их можно разделить на несколько крупных категорий. Первая – основная. Это файлы с элементами кодификаций, который помогают при анализе и визуализации данных. Носят название SciPy Stack. Являются базой для большинства library языка.
Jupyter
Это – интерактивная оболочка Python. Она предусматривает:
- сохранение истории ввода во всех имеющихся сеансах;
- дополнительный командный синтаксис;
- автоматическое дополнение кодификации;
- подсветку кода.
Интерфейс подходит для обработки и исследования информации, тестирования и внесения нужных корректировок. Через Markdown необходимо форматировать текст и библиотеки для визуализации. Соответствующий язык позволяет формировать аналитические отчетности через браузеры с последующим преобразованием в презентации. Jupiter позволяет настраивать совместную работу на серверах.
NumPy
Лучшие библиотеки машинного обучение в Python разнообразны. Следующий вариант – это NumPy. Основное хранилище, отвечающее за контактирование с векторами и матрицами. Включает в себя готовые методы для разного рода математических операций.
SciPy
Крупная библиотека, в основе которой лежит NumPy. Она расширяет возможности «предшественника». Чем-то напоминает MatLab. Предусматривает методы линейной алгебры, а также методики, которые позволяют работать с вероятностными распределениями и интегральными операциями. Есть возможность применения преобразований Фурье.
Matplotlib
MathPlotLib – низкоуровневый набор файлов для создания двумерных диаграмм и графиков. Позволяет составлять графики любого типа. Для сложной визуализации требует большего кода, чем иные аналоги.
Работа с информацией
Следующая категория libraries – это средства, предназначающиеся для работы с набором данных. Позволяют полноценно обучать нейронные сети. Без них в Python машинное обучение попросту немыслимо.
Scikit-learn
Scikit-learn – один из сборников программных кодов, опирающихся на SciPy и NumPy. Предусматривает алгоритмы для машинного обучения, а также интеллектуального анализа собираемых сведений в электронном виде:
- кластеризации;
- классификации;
- регрессии.
Подходит для реализации различных целей, связанных с BigData. К ее помощи прибегают многие крупные корпорации.
TensorFlow
TensorFlow – библиотека, созданная компанией Google. Это замена DistBelief – фреймворка, который предназначается для настройки, обучения и тренировки нейронных сетей. Гугл может с ее помощью определять элементы и объекты на снимках, а приложение для распознавания голоса – разбирать речь и воспринимать ее максимально грамотно.
Keras
Библиотека в Python, которая относится к глубокому обучению. Предусматривает модульность и масштабируемость. Имеет мощный функционал, который способствует быстрому созданию прототипов. Имеет сверточные и рекуррентные сети и их комбинации.
Интеллектуальный анализ и обработка языка
Следующая категория, дополняющая представленный список библиотек, предназначается для распознавания текстовых сведений. Они пригодятся для извлечения электронного материала (информации) из Сети. Применяются тогда, когда возникает необходимость в обработке естественного языка.
Scrapy
Scrapy – вариант, который начинают задействовать в Python для создания ботов-пауков. Они занимаются сканированием страниц сайтов, после чего собирают структурированные сведения. К оным можно отнести:
- цены;
- контактные данные;
- URL-адреса.
Scrapy также способен извлекать электронные материалы из API.
NLTK
Набор библиотек, который задействован в качестве средства обработки естественного языка. Включает в себя следующие функции:
- разметка текстовых сведений;
- определение именованных объектов;
- отображение древа синтаксиса, который помогает раскрывать части речи и зависимости.
С помощью соответствующего пакета можно обучать классификаторы и разнообразные устройства. Пример – определение тональности текста.
Pattern
В Python библиотеки машинного обучения обладают большим количеством соответствующих элементов. В их числе можно увидеть Pattern. Данный сборник сочетает функциональность NLTK и Scrapy. Предназначается для того, чтобы:
- эффективно использовать ML;
- естественно обрабатывать язык;
- извлекать электронные материалы в Сети;
- анализировать социальные сети.
Инструментарий включает в себя:
- поисковую систему;
- API для Google;
- API для Твиттера и Википедии;
- алгоритмы текстового анализа.
Pattern значительно экономит время разработчика при обработке БигДата.
Пара слов о визуализации
Следующий момент, на который стоит обратить внимание – визуализация. Только «учить» устройства пониманию информации – гиблое дело. Ее требуется представлять так, чтобы новые сведения были понятны еще и обычным пользователям.
SeaBorn
Среди библиотек Python можно выделить SeaBorn. Этот инструмент позволяет шире раскрывать возможности визуализации, нежели MatPlotLib. Способствует более простому созданию специфической визуализации.
К таковой относят временные ряды, а также тепловые карты. Есть возможность создания скрипичных диаграмм в несколько кликов.
Bokeh
Средство, которое подходит для полного погружения в интерактивные и масштабируемые графики через виджеты JavaScript. Работает в интернет-обозревателях.
Через Bokeh допустимо «рисовать» графики совершенно разной сложности – от стандартных небольших диаграмм до сложных кастомизированных схем.
BaseMap
Применяется для того, чтобы создавать карты. Лежит в основе Folium, который предназначается для проектировки интерактивных карт по Сети.
Инструмент, обладающий простым кодом, а также приятной визуализацией. Можно воссоздавать через BaseMap разного рода карты, работающие в режиме online.
NetWorkX
Еще одно средство, которое поможет работать с большими данными. Применяется для:
- создания графов;
- анализа информации;
- проектировки сетевых структур.
NetWorkX сгодится для работы со стандартными и нестандартными формами представления электронных материалов.
Иные сборники
А вот несколько библиотек Python, которые позволяют реализовывать ML, но не подходят ни под одну из ранее указанных категорий. Некоторые из них предусматривают разбор массивов информации и ее классификацию.
Pandas
Pandas – удобный вариант для того, чтобы создавать понятные структурные данные. Предусматривает инструментарий анализа электронных материалов посредством рассматриваемого языка программирования.
Pandas обладает рядом сильных сторон:
- гибкость и скорость электронных сведений;
- поддержка агрегации, конкатенации, итерации и переиндексации;
- есть возможность визуализации собранных материалов;
- совместимость с иными «готовыми блоками кодов»;
- интуитивно понятное управление;
- минимальный набор команд для предельной функциональности;
- производительность на высшем уровне;
- поддержка широкого спектра коммерческих и академических сфер.
Но этот вариант подойдет тем, кто был ранее знаком с MatPlotLib. Связано это с тем, что именно этот «набор кодификаций» лежит в основе Pandas. Новичкам «с нуля» освоить оный бывает весьма проблематично.
А еще соответствующий вариант не лучшим образом подходит для n-размерных массивов и статистического моделирования. Для этих проблем рекомендуется подбирать иные «готовые элементы кодификаций».
Pytorch
Популярный вариант, который опирается на базу Torch. Он прописан на языке C, а затем обернут в оболочку Lua. Предусматривался соответствующий набор для компании FaceBook (она и выступает создателем оного). Сейчас инструмент активно применяется социальными сетями и крупными IT-корпорациями.
Pytorch выделяется следующими особенностями:
- инструментарий и хранилища для компьютерного зрения и натуральной обработки речи;
- возможность вычислений через тензоры с применением ускорения GPU;
- вычислительные диаграммы;
- простой и понятный даже новичкам процесс моделирования;
- работа в стандартном режиме больше напоминает «обычное» программирование;
- наличие привычных разработчику инструментов отладки;
- готовые модели и модули, поддерживающие слияние/интеграцию.
Pytorch является относительно новым, из-за чего возникает проблема с поиском документации и онлайн-уроков. В Сети их пока не слишком много по сравнению с аналогами.
Pillow
Pillow – это библиотека в Python, которая применяется для обработки картинок и иных изображений. Относительно старый проект, который начался в 1995 году. Ранее известный как PIL. В 2011 году получил текущее название.
Позволяет открывать, манипулировать и сохранять всевозможные файлы изображений. Предусматривает:
- добавление текста к картинкам;
- фильтрация и улучшение графики;
- пиксельные операции;
- наличие маскировки и прозрачности;
- обеспечение поддержки основной массы графических форматов.
Данное средство может пригодиться не только при машинном обучении, но и во время работы с BigDatas.
Большой выбор курсов по машинному обучению предлагается в Otus. Есть варианты как для продвинутых, так и для начинающих пользователей. Также вы всегда сможете прокачать Python.
<!DOCTYPE html>
<html dir="ltr" lang="ru-RU">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<title>Питон и машинное обучение: что поможет разработчику OTUS</title>
<!-- All in One SEO 4.5.2.1 - aioseo.com -->
<meta name="description" content="Питон – язык программирования, который выделяется разнообразием возможностей. Он становится все более популярным среди разработчиков. Позволяет создавать как сложные приложения, так и веб-контент. Python – язык, который используется в работе крупных предприятий и мелких организаций. Его код легко читается и корректируется при необходимости. Можно использовать его для нейронных сетей и алгоритмов машинного обучения. Для реализации" />
<meta name="robots" content="max-image-preview:large" />
<link rel="canonical" href="https://otus.ru/journal/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku/" />
<meta name="generator" content="All in One SEO (AIOSEO) 4.5.2.1" />
<script type="application/ld+json" class="aioseo-schema">
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku\/#article","name":"\u041f\u0438\u0442\u043e\u043d \u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435: \u0447\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 OTUS","headline":"\u041f\u0438\u0442\u043e\u043d \u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435: \u0447\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443","author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2022\/02\/oj-1080x7204-1.png","width":1080,"height":720},"datePublished":"2022-02-18T20:07:42+00:00","dateModified":"2022-02-18T20:08:09+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, Machine Learning, Python"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/otus.ru\/journal\/","nextItem":"https:\/\/otus.ru\/journal\/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku\/#listItem"},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku\/#listItem","position":2,"name":"\u041f\u0438\u0442\u043e\u043d \u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435: \u0447\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443","previousItem":"https:\/\/otus.ru\/journal\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","url":"https:\/\/otus.ru\/journal\/","sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"],"contactPoint":{"@type":"ContactPoint","telephone":"+74999389202","contactType":"Customer Support"}},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author","url":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/","name":"A. Pavlenko","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d4c499a104d7c2522fa41f89e6819499?s=96&d=mm&r=g","width":96,"height":96,"caption":"A. Pavlenko"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku\/#webpage","url":"https:\/\/otus.ru\/journal\/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku\/","name":"\u041f\u0438\u0442\u043e\u043d \u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435: \u0447\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 OTUS","description":"\u041f\u0438\u0442\u043e\u043d \u2013 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439. \u041e\u043d \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u0441\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0441\u0440\u0435\u0434\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0442\u0430\u043a \u0438 \u0432\u0435\u0431-\u043a\u043e\u043d\u0442\u0435\u043d\u0442. Python \u2013 \u044f\u0437\u044b\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u0439 \u0438 \u043c\u0435\u043b\u043a\u0438\u0445 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439. \u0415\u0433\u043e \u043a\u043e\u0434 \u043b\u0435\u0433\u043a\u043e \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438. \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0434\u043b\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2022\/02\/oj-1080x7204-1.png","@id":"https:\/\/otus.ru\/journal\/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku\/#mainImage","width":1080,"height":720},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku\/#mainImage"},"datePublished":"2022-02-18T20:07:42+00:00","dateModified":"2022-02-18T20:08:09+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS JOURNAL","description":"Blog about IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}
</script>
<!-- All in One SEO -->
<link rel='dns-prefetch' href='//otus.ru' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='stylesheet' id='wp-block-library-css' href='https://otus.ru/journal/wp-includes/css/dist/block-library/style.min.css?ver=6.4.7' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
.wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='wbcr-comments-plus-url-span-css' href='https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/css/url-span.css?ver=2.2.0' type='text/css' media='all' />
<link rel='stylesheet' id='wpel-style-css' href='https://otus.ru/journal/wp-content/plugins/wp-external-links/public/css/wpel.css?ver=2.59' type='text/css' media='all' />
<link rel='stylesheet' id='ez-toc-css' href='https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.61' type='text/css' media='all' />
<style id='ez-toc-inline-css' type='text/css'>
div#ez-toc-container .ez-toc-title {font-size: 120%;}div#ez-toc-container .ez-toc-title {font-weight: 500;}div#ez-toc-container ul li {font-size: 95%;}div#ez-toc-container nav ul ul li {font-size: 90%;}
.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul{counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul{counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }
</style>
<link rel='stylesheet' id='contentberg-fonts-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C500%2C700%7CPT+Serif%3A400%2C400i%2C600%7CIBM+Plex+Serif%3A500' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-core-css' href='https://otus.ru/journal/wp-content/themes/contentberg/style.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-lightbox-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/lightbox.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/fontawesome/css/font-awesome.min.css?ver=1.8.3' type='text/css' media='all' />
<script type="text/javascript" id="breeze-prefetch-js-extra">
/* <![CDATA[ */
var breeze_prefetch = {"local_url":"https:\/\/otus.ru\/journal","ignore_remote_prefetch":"1","ignore_list":["\/wp-admin\/"]};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js" id="breeze-prefetch-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/lazysizes.js" id="lazysizes-js"></script>
<link rel="https://api.w.org/" href="https://otus.ru/journal/wp-json/" /><link rel="alternate" type="application/json" href="https://otus.ru/journal/wp-json/wp/v2/posts/3050" /><link rel='shortlink' href='https://otus.ru/journal/?p=3050' />
<link rel="alternate" type="application/json+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpiton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpiton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku%2F&format=xml" />
<script>var Sphere_Plugin = {"ajaxurl":"https:\/\/otus.ru\/journal\/wp-admin\/admin-ajax.php"};</script><link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-270x270.png" />
<style type="text/css" id="wp-custom-css">
#menu-item-10406 .wpel-icon {
display: none;
}
#menu-item-10407 .wpel-icon {
display: none;
}
.otus-login-site a .wpel-icon {
display: none;
}
.menu-menju-navykov-container a .wpel-icon {
display: none;
}
.otus-login-site a
{
background: #ffd709;
border-radius: 12px;
color: #0f0f10;
font-size: 14px;
font-weight: 700;
line-height: 20px;
display: block;
text-align: center;
padding: 8px 25px;
}
.main-footer.dark {
background: linear-gradient(90deg, #a64fc5, #4f54e6);
border-color: transparent;
}
.main-footer.bold .copyright {
color: #fff;
}
.main-footer.bold .to-top i {
color: #fff;
}
.main-footer.bold .back-to-top {
color: #fff;
}
.nav__scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.scrollable-menu .menu {
display: flex;
}
.nav__scroll
{
background: linear-gradient(90deg, #a64fc5, #4f54e6);
}
.scrollable-menu .menu .menu-item {
flex: 0 0 auto;
padding: 15px 15px;
}
.scrollable-menu .menu .menu-item a {
color: #fff;
}
.nav__scroll::-webkit-scrollbar{background-color:#fff;height:5px;}
.nav__scroll::-webkit-scrollbar-thumb{background-color:#dcdcdc;}
.nav__scroll::-webkit-scrollbar-track{-webkit-border-radius:0;border-radius:0;background-color:#fff;}/
body {
min-width: 320px;
}
.banner-click img {
margin: 0 auto;
display: block;
}
.banner-click {
cursor: pointer;
}
.banner-footer-area {
margin-bottom: 20px;
}
.banner-left-area {
margin-top: 40px;
} </style>
<!--Start VDZ Yandex Metrika Plugin-->
<!-- Yandex.Metrika counter --><script type="text/javascript" >(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");ym(34531570, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ecommerce:"dataLayer"});</script>
<noscript><div><img src="https://mc.yandex.ru/watch/34531570" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter --><!--START ADD EVENTS FROM CF7--><script type='text/javascript'>document.addEventListener( 'wpcf7submit', function( event ) {
//event.detail.contactFormId;
if(ym){
//console.log(event.detail);
ym(34531570, 'reachGoal', 'VDZ_SEND_CONTACT_FORM_7');
ym(34531570, 'params', {
page_url: window.location.href,
status: event.detail.status,
locale: event.detail.contactFormLocale,
form_id: event.detail.contactFormId,
});
}
}, false );
</script><!--END ADD EVENTS FROM CF7-->
<!--End VDZ Yandex Metrika Plugin-->
</head>
<body class="post-template-default single single-post postid-3050 single-format-standard right-sidebar lazy-normal has-lb">
<div class="main-wrap">
<header id="main-head" class="main-head head-nav-below has-search-modal simple simple-boxed">
<div class="inner inner-head" data-sticky-bar="0">
<div class="wrap cf wrap-head">
<div class="left-contain">
<span class="mobile-nav"><i class="fa fa-bars"></i></span>
<div class="title">
<a href="https://otus.ru/journal/" title="OTUS JOURNAL" rel="home" data-wpel-link="internal">
<span class="text-logo"><img src="/journal/wp-content/themes/contentberg/img/logo_site.svg" alt="OTUS JOURNAL"></span>
</a>
</div>
</div>
<div class="navigation-wrap inline">
<nav class="navigation inline simple light" data-sticky-bar="0">
<div class="menu-rubriki-container"><ul id="menu-rubriki" class="menu"><li id="menu-item-109" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-1 menu-item-109"><a href="https://otus.ru/journal/category/pro-it/" data-wpel-link="internal"><span>Про IT</span></a></li>
<li id="menu-item-113" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-cat-4 menu-item-113"><a href="https://otus.ru/journal/category/polza/" data-wpel-link="internal"><span>Полезное</span></a></li>
<li id="menu-item-114" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-3 menu-item-114"><a href="https://otus.ru/journal/category/lifestyle/" data-wpel-link="internal"><span>Лайфстайл</span></a></li>
<li id="menu-item-10406" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10406"><a href="https://otus.ru/catalog/courses" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Обучение</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10407" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10407"><a href="https://otus.ru/about" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Информация</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </nav>
</div>
<div class="actions">
<div class="otus-login-site">
<a href="https://otus.ru/login/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Войти<span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
<a href="#" title="Search" class="search-link"><i class="fa fa-search"></i></a>
</div>
</div>
</div>
</header> <!-- .main-head -->
<div class="nav nav_disable nav_colored nav_transparent course-categories__nav nav__scroll ">
<div class="container wrap">
<div class="links inline simple light scrollable-menu">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov" class="menu"><li id="menu-item-10413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10414" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10415" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10416" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10417" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10420" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10421" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
</div>
</div>
<div class="main wrap">
<div class="ts-row cf">
<div class="col-8 main-content cf">
<article id="post-3050" class="the-post post-3050 post type-post status-publish format-standard has-post-thumbnail category-polza tag-machine-learning tag-python">
<header class="post-header the-post-header cf">
<div class="post-meta the-post-meta">
<span class="post-cat">
<a href="https://otus.ru/journal/category/polza/" class="category" data-wpel-link="internal">Полезное</a>
</span>
<h1 class="post-title">
Питон и машинное обучение: что поможет разработчику
</h1>
<a href="https://otus.ru/journal/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku/" class="date-link" data-wpel-link="internal"><time class="post-date">18 февраля, 2022</time></a>
</div>
<div class="featured">
<a href="https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7204-1.png" class="image-link" data-wpel-link="internal"><img width="770" height="515" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20770%20515%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-contentberg-main size-contentberg-main lazyload wp-post-image" alt="Питон и машинное обучение: что поможет разработчику" title="Питон и машинное обучение: что поможет разработчику" decoding="async" fetchpriority="high" data-srcset="https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7204-1-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7204-1-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7204-1-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7204-1-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7204-1-270x180.png 270w" data-src="https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7204-1-770x515.png" data-sizes="(max-width: 770px) 100vw, 770px" /> </a>
</div>
</header><!-- .post-header -->
<div class="post-content description cf entry-content content-normal">
<div id="ez-toc-container" class="ez-toc-v2_0_61 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction">
<div class="ez-toc-title-container">
<p class="ez-toc-title " >Содержание</p>
<span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Toggle Table of Content"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div>
<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#%D0%9F%D0%B8%D1%82%D0%BE%D0%BD_%E2%80%93_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5" title="Питон – определение">Питон – определение</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-2" href="#%D0%9E_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0%D1%85" title="О библиотеках">О библиотеках</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-3" href="#%D0%9F%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D0%B5_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D1%8F" title="Понятие машинного обучения">Понятие машинного обучения</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-4" href="#%D0%9F%D0%BE%D1%87%D0%B5%D0%BC%D1%83_%D0%9F%D0%B8%D1%82%D0%BE%D0%BD" title="Почему Питон">Почему Питон</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-5" href="#%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_libraries" title="Основные libraries">Основные libraries</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-6" href="#Jupyter" title="Jupyter">Jupyter</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-7" href="#NumPy" title="NumPy">NumPy</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-8" href="#SciPy" title="SciPy">SciPy</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-9" href="#Matplotlib" title="Matplotlib">Matplotlib</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-10" href="#Scikit-learn" title="Scikit-learn">Scikit-learn</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-11" href="#TensorFlow" title="TensorFlow">TensorFlow</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-12" href="#Keras" title="Keras">Keras</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-13" href="#%D0%98%D0%BD%D1%82%D0%B5%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B8_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0" title="Интеллектуальный анализ и обработка языка">Интеллектуальный анализ и обработка языка</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-14" href="#Scrapy" title="Scrapy">Scrapy</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-15" href="#NLTK" title="NLTK">NLTK</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-16" href="#Pattern" title="Pattern">Pattern</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-17" href="#%D0%9F%D0%B0%D1%80%D0%B0_%D1%81%D0%BB%D0%BE%D0%B2_%D0%BE_%D0%B2%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8" title="Пара слов о визуализации">Пара слов о визуализации</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-18" href="#SeaBorn" title="SeaBorn">SeaBorn</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-19" href="#Bokeh" title="Bokeh">Bokeh</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-20" href="#BaseMap" title="BaseMap">BaseMap</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-21" href="#NetWorkX" title="NetWorkX">NetWorkX</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-22" href="#%D0%98%D0%BD%D1%8B%D0%B5_%D1%81%D0%B1%D0%BE%D1%80%D0%BD%D0%B8%D0%BA%D0%B8" title="Иные сборники">Иные сборники</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-23" href="#Pandas" title="Pandas">Pandas</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-24" href="#Pytorch" title="Pytorch">Pytorch</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-25" href="#Pillow" title="Pillow">Pillow</a></li></ul></li></ul></nav></div>
<p>Питон – язык программирования, который выделяется разнообразием возможностей. Он становится все более популярным среди разработчиков. Позволяет создавать как сложные приложения, так и веб-контент.</p>
<p>Python – язык, который используется в работе крупных предприятий и мелких организаций. Его код легко читается и корректируется при необходимости. Можно использовать его для нейронных сетей и алгоритмов машинного обучения. Для реализации поставленной задачи Python предусматривает наличие определенных библиотек. О них будет рассказано далее. Информация поможет как новичкам, так и опытным разработчикам.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D0%B8%D1%82%D0%BE%D0%BD_%E2%80%93_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5"></span>Питон – определение<span class="ez-toc-section-end"></span></h2>
<p>Python – скриптовый высокоуровневый язык общего назначения. Универсален, за счет чего позволяет создавать программное обеспечение не только для компьютеров, но и для мобильных платформ.</p>
<p>Обладает динамической строгой типизацией, а также автоматическим управлением памятью. Есть элементы ООП, которые позволяют составлять программные коды в два счета. Оснащен весьма мощным функционалом.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0%D1%85"></span>О библиотеках<span class="ez-toc-section-end"></span></h2>
<p>Библиотека – своеобразный файл, хранящий в себе элемент кода. Шаблон, который можно использовать для более быстрой разработки.</p>
<p>Средство придумано для того, чтобы часто повторяющиеся кодификации, отвечающие за тот или иной функционал, не приходилось каждый раз прописывать вручную. Достаточно просто открыть файл библиотеки и вставить туда собственные данные. Есть не только в Python, но и в иных языках программирования.</p>
<p>Стоит также обратить внимание, что есть еще и фреймворки – интерфейсы и инструменты, которые позволяют разработчику создавать разного рода модели машинного обучения. Для реализации поставленной задачи не требуется погружаться и вникать в суть имеющихся алгоритмов.</p>
<p>Внимание: некоторые программеры называют фреймворки библиотеками. Это не совсем правильно. Framework может быть представлен библиотекой или их набором.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D0%B5_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D1%8F"></span>Понятие машинного обучения<span class="ez-toc-section-end"></span></h2>
<p>Машинное обучение – специализированный способ, который позволяет обучать устройства и компьютеры без программирования. Подраздел искусственного интеллекта, а также науки об информации.</p>
<p>Машинное обучение и Python тесно связаны. Для соответствующего способа создаются утилиты на Питоне. Они имитируют навыки пользователей, которые опираются на анализ данных. Соответствующий «алгоритм» чаще всего относится к Big Data.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D0%BE%D1%87%D0%B5%D0%BC%D1%83_%D0%9F%D0%B8%D1%82%D0%BE%D0%BD"></span>Почему Питон<span class="ez-toc-section-end"></span></h3>
<p>Python – язык программирования, который позволяет осуществлять продуктивную разработку. Нужно знать, почему именно его рекомендуется применять при Machine Learning. На то есть несколько причин:</p>
<ul><li>наличие весьма мощных встроенных библиотек;</li><li>пологая кривая изучения;</li><li>простое интегрирование;</li><li>открытый программный код;</li><li>простота создания прототипов;</li><li>наличие объектно-ориентированной парадигмы;</li><li>кроссплатформенность;</li><li>производительность на достаточно высоком уровне;</li><li>понятный даже новичку синтаксис;</li><li>переносимость.</li></ul>
<p>Разработчику не придется изучать много информации для того, чтобы составлять утилиты для machines learn. Контент, получаемый на выходе, хорошо совместим со всеми существующими операционными системами, включая Linux.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_libraries"></span>Основные libraries<span class="ez-toc-section-end"></span></h2>
<p>Далее будут рассмотрены библиотеки Python, которые помогут в ML. Условно их можно разделить на несколько крупных категорий. Первая – основная. Это файлы с элементами кодификаций, который помогают при анализе и визуализации данных. Носят название SciPy Stack. Являются базой для большинства library языка.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Jupyter"></span>Jupyter<span class="ez-toc-section-end"></span></h3>
<p>Это – интерактивная оболочка Python. Она предусматривает:</p>
<ul><li>сохранение истории ввода во всех имеющихся сеансах;</li><li>дополнительный командный синтаксис;</li><li>автоматическое дополнение кодификации;</li><li>подсветку кода.</li></ul>
<p>Интерфейс подходит для обработки и исследования информации, тестирования и внесения нужных корректировок. Через Markdown необходимо форматировать текст и библиотеки для визуализации. Соответствующий язык позволяет формировать аналитические отчетности через браузеры с последующим преобразованием в презентации. Jupiter позволяет настраивать совместную работу на серверах.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="NumPy"></span>NumPy<span class="ez-toc-section-end"></span></h3>
<p>Лучшие библиотеки машинного обучение в Python разнообразны. Следующий вариант – это NumPy. Основное хранилище, отвечающее за контактирование с векторами и матрицами. Включает в себя готовые методы для разного рода математических операций.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="SciPy"></span>SciPy<span class="ez-toc-section-end"></span></h3>
<p>Крупная библиотека, в основе которой лежит NumPy. Она расширяет возможности «предшественника». Чем-то напоминает MatLab. Предусматривает методы линейной алгебры, а также методики, которые позволяют работать с вероятностными распределениями и интегральными операциями. Есть возможность применения преобразований Фурье.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Matplotlib"></span>Matplotlib<span class="ez-toc-section-end"></span></h3>
<p>MathPlotLib – низкоуровневый набор файлов для создания двумерных диаграмм и графиков. Позволяет составлять графики любого типа. Для сложной визуализации требует большего кода, чем иные аналоги.</p>
<p>Работа с информацией</p>
<p>Следующая категория libraries – это средства, предназначающиеся для работы с набором данных. Позволяют полноценно обучать нейронные сети. Без них в Python машинное обучение попросту немыслимо.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Scikit-learn"></span>Scikit-learn<span class="ez-toc-section-end"></span></h3>
<p>Scikit-learn – один из сборников программных кодов, опирающихся на SciPy и NumPy. Предусматривает алгоритмы для машинного обучения, а также интеллектуального анализа собираемых сведений в электронном виде:</p>
<ul><li>кластеризации;</li><li>классификации;</li><li>регрессии.</li></ul>
<p>Подходит для реализации различных целей, связанных с BigData. К ее помощи прибегают многие крупные корпорации.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="TensorFlow"></span>TensorFlow<span class="ez-toc-section-end"></span></h3>
<p>TensorFlow – библиотека, созданная компанией Google. Это замена DistBelief – фреймворка, который предназначается для настройки, обучения и тренировки нейронных сетей. Гугл может с ее помощью определять элементы и объекты на снимках, а приложение для распознавания голоса – разбирать речь и воспринимать ее максимально грамотно.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Keras"></span>Keras<span class="ez-toc-section-end"></span></h3>
<p>Библиотека в Python, которая относится к глубокому обучению. Предусматривает модульность и масштабируемость. Имеет мощный функционал, который способствует быстрому созданию прототипов. Имеет сверточные и рекуррентные сети и их комбинации.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%BD%D1%82%D0%B5%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B8_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0"></span>Интеллектуальный анализ и обработка языка<span class="ez-toc-section-end"></span></h2>
<p>Следующая категория, дополняющая представленный список библиотек, предназначается для распознавания текстовых сведений. Они пригодятся для извлечения электронного материала (информации) из Сети. Применяются тогда, когда возникает необходимость в обработке естественного языка.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Scrapy"></span>Scrapy<span class="ez-toc-section-end"></span></h3>
<p>Scrapy – вариант, который начинают задействовать в Python для создания ботов-пауков. Они занимаются сканированием страниц сайтов, после чего собирают структурированные сведения. К оным можно отнести:</p>
<ul><li>цены;</li><li>контактные данные;</li><li>URL-адреса.</li></ul>
<p>Scrapy также способен извлекать электронные материалы из API.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="NLTK"></span>NLTK<span class="ez-toc-section-end"></span></h3>
<p>Набор библиотек, который задействован в качестве средства обработки естественного языка. Включает в себя следующие функции:</p>
<ul><li>разметка текстовых сведений;</li><li>определение именованных объектов;</li><li>отображение древа синтаксиса, который помогает раскрывать части речи и зависимости.</li></ul>
<p>С помощью соответствующего пакета можно обучать классификаторы и разнообразные устройства. Пример – определение тональности текста.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Pattern"></span>Pattern<span class="ez-toc-section-end"></span></h3>
<p>В Python библиотеки машинного обучения обладают большим количеством соответствующих элементов. В их числе можно увидеть Pattern. Данный сборник сочетает функциональность NLTK и Scrapy. Предназначается для того, чтобы:</p>
<ul><li>эффективно использовать ML;</li><li>естественно обрабатывать язык;</li><li>извлекать электронные материалы в Сети;</li><li>анализировать социальные сети.</li></ul>
<p>Инструментарий включает в себя:</p>
<ul><li>поисковую систему;</li><li>API для Google;</li><li>API для Твиттера и Википедии;</li><li>алгоритмы текстового анализа.</li></ul>
<p>Pattern значительно экономит время разработчика при обработке БигДата.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D0%B0%D1%80%D0%B0_%D1%81%D0%BB%D0%BE%D0%B2_%D0%BE_%D0%B2%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8"></span>Пара слов о визуализации<span class="ez-toc-section-end"></span></h2>
<p>Следующий момент, на который стоит обратить внимание – визуализация. Только «учить» устройства пониманию информации – гиблое дело. Ее требуется представлять так, чтобы новые сведения были понятны еще и обычным пользователям.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="SeaBorn"></span>SeaBorn<span class="ez-toc-section-end"></span></h3>
<p>Среди библиотек Python можно выделить SeaBorn. Этот инструмент позволяет шире раскрывать возможности визуализации, нежели MatPlotLib. Способствует более простому созданию специфической визуализации.</p>
<p>К таковой относят временные ряды, а также тепловые карты. Есть возможность создания скрипичных диаграмм в несколько кликов.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Bokeh"></span>Bokeh<span class="ez-toc-section-end"></span></h3>
<p>Средство, которое подходит для полного погружения в интерактивные и масштабируемые графики через виджеты JavaScript. Работает в интернет-обозревателях.</p>
<p>Через Bokeh допустимо «рисовать» графики совершенно разной сложности – от стандартных небольших диаграмм до сложных кастомизированных схем.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="BaseMap"></span>BaseMap<span class="ez-toc-section-end"></span></h3>
<p>Применяется для того, чтобы создавать карты. Лежит в основе Folium, который предназначается для проектировки интерактивных карт по Сети.</p>
<p>Инструмент, обладающий простым кодом, а также приятной визуализацией. Можно воссоздавать через BaseMap разного рода карты, работающие в режиме online.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="NetWorkX"></span>NetWorkX<span class="ez-toc-section-end"></span></h3>
<p>Еще одно средство, которое поможет работать с большими данными. Применяется для:</p>
<ul><li>создания графов;</li><li>анализа информации;</li><li>проектировки сетевых структур.</li></ul>
<p>NetWorkX сгодится для работы со стандартными и нестандартными формами представления электронных материалов.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%BD%D1%8B%D0%B5_%D1%81%D0%B1%D0%BE%D1%80%D0%BD%D0%B8%D0%BA%D0%B8"></span>Иные сборники<span class="ez-toc-section-end"></span></h2>
<p>А вот несколько библиотек Python, которые позволяют реализовывать ML, но не подходят ни под одну из ранее указанных категорий. Некоторые из них предусматривают разбор массивов информации и ее классификацию.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Pandas"></span>Pandas<span class="ez-toc-section-end"></span></h3>
<p>Pandas – удобный вариант для того, чтобы создавать понятные структурные данные. Предусматривает инструментарий анализа электронных материалов посредством рассматриваемого языка программирования.</p>
<p>Pandas обладает рядом сильных сторон:</p>
<ul><li>гибкость и скорость электронных сведений;</li><li>поддержка агрегации, конкатенации, итерации и переиндексации;</li><li>есть возможность визуализации собранных материалов;</li><li>совместимость с иными «готовыми блоками кодов»;</li><li>интуитивно понятное управление;</li><li>минимальный набор команд для предельной функциональности;</li><li>производительность на высшем уровне;</li><li>поддержка широкого спектра коммерческих и академических сфер.</li></ul>
<p>Но этот вариант подойдет тем, кто был ранее знаком с MatPlotLib. Связано это с тем, что именно этот «набор кодификаций» лежит в основе Pandas. Новичкам «с нуля» освоить оный бывает весьма проблематично.</p>
<p>А еще соответствующий вариант не лучшим образом подходит для n-размерных массивов и статистического моделирования. Для этих проблем рекомендуется подбирать иные «готовые элементы кодификаций».</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Pytorch"></span>Pytorch<span class="ez-toc-section-end"></span></h3>
<p>Популярный вариант, который опирается на базу Torch. Он прописан на языке C, а затем обернут в оболочку Lua. Предусматривался соответствующий набор для компании FaceBook (она и выступает создателем оного). Сейчас инструмент активно применяется социальными сетями и крупными IT-корпорациями.</p>
<p>Pytorch выделяется следующими особенностями:</p>
<ul><li>инструментарий и хранилища для компьютерного зрения и натуральной обработки речи;</li><li>возможность вычислений через тензоры с применением ускорения GPU;</li><li>вычислительные диаграммы;</li><li>простой и понятный даже новичкам процесс моделирования;</li><li>работа в стандартном режиме больше напоминает «обычное» программирование;</li><li>наличие привычных разработчику инструментов отладки;</li><li>готовые модели и модули, поддерживающие слияние/интеграцию.</li></ul>
<p>Pytorch является относительно новым, из-за чего возникает проблема с поиском документации и онлайн-уроков. В Сети их пока не слишком много по сравнению с аналогами.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Pillow"></span>Pillow<span class="ez-toc-section-end"></span></h3>
<p>Pillow – это библиотека в Python, которая применяется для обработки картинок и иных изображений. Относительно старый проект, который начался в 1995 году. Ранее известный как PIL. В 2011 году получил текущее название.</p>
<p>Позволяет открывать, манипулировать и сохранять всевозможные файлы изображений. Предусматривает:</p>
<ul><li>добавление текста к картинкам;</li><li>фильтрация и улучшение графики;</li><li>пиксельные операции;</li><li>наличие маскировки и прозрачности;</li><li>обеспечение поддержки основной массы графических форматов.</li></ul>
<p>Данное средство может пригодиться не только при машинном обучении, но и во время работы с BigDatas. </p>
<p><a href="https://otus.ru/categories/data-science/?utm_source=oj" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Большой выбор курсов по машинному обучению<span class="wpel-icon wpel-image wpel-icon-6"></span></a> предлагается в Otus. Есть варианты как для продвинутых, так и для начинающих пользователей. Также вы всегда сможете прокачать Python.</p>
<figure class="wp-block-image size-large"><a href="https://otus.ru/lessons/python-professional/?utm_source=oj&utm_medium=affilate&utm_campaign=python" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><img decoding="async" width="970" height="90" src="https://otus.ru/journal/wp-content/uploads/2022/02/Python_970x90-20219-8b1a8e-3.png" alt="Питон и машинное обучение: что поможет разработчику" class="wp-image-3051" srcset="https://otus.ru/journal/wp-content/uploads/2022/02/Python_970x90-20219-8b1a8e-3.png 970w, https://otus.ru/journal/wp-content/uploads/2022/02/Python_970x90-20219-8b1a8e-3-300x28.png 300w, https://otus.ru/journal/wp-content/uploads/2022/02/Python_970x90-20219-8b1a8e-3-150x14.png 150w, https://otus.ru/journal/wp-content/uploads/2022/02/Python_970x90-20219-8b1a8e-3-768x71.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></a></figure>
<p></p>
</div><!-- .post-content -->
<div class="the-post-foot cf">
<div class="tag-share cf">
<div class="post-tags"><a href="https://otus.ru/journal/tag/machine-learning/" rel="tag" data-wpel-link="internal">Machine Learning</a><a href="https://otus.ru/journal/tag/python/" rel="tag" data-wpel-link="internal">Python</a></div>
<div class="post-share">
<div class="post-share-icons cf">
<span class="counters">
</span>
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotus.ru%2Fjournal%2Fpiton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku%2F" class="link facebook wpel-icon-right" target="_blank" title="Share on Facebook" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-facebook"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpiton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku%2F&text=%D0%9F%D0%B8%D1%82%D0%BE%D0%BD%20%D0%B8%20%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5%20%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%3A%20%D1%87%D1%82%D0%BE%20%D0%BF%D0%BE%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%20%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83" class="link twitter wpel-icon-right" target="_blank" title="Share on Twitter" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-twitter"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpiton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku%2F" class="link linkedin wpel-icon-right" target="_blank" title="LinkedIn" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-linkedin"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpiton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku%2F&media=https%3A%2F%2Fotus.ru%2Fjournal%2Fwp-content%2Fuploads%2F2022%2F02%2Foj-1080x7204-1.png&description=%D0%9F%D0%B8%D1%82%D0%BE%D0%BD%20%D0%B8%20%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5%20%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%3A%20%D1%87%D1%82%D0%BE%20%D0%BF%D0%BE%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%20%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83" class="link pinterest wpel-icon-right" target="_blank" title="Pinterest" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-pinterest-p"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
</div>
</div>
</div>
<div class="post-nav">
<div class="post previous cf">
<a href="https://otus.ru/journal/python-samoobuchenie-s-nulya/" title="Prev Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-left"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/python-samoobuchenie-s-nulya/" class="image-link" rel="previous" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Python: самообучение с нуля" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7203-1-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7203-1-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7203-1-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7203-1-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7203-1-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7203-1-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7203-1-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7203-1.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x7203-1-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Python: самообучение с нуля" /> </a>
<div class="post-meta">
<span class="label">Prev Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/python-samoobuchenie-s-nulya/" data-wpel-link="internal">Python: самообучение с нуля</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/python-samoobuchenie-s-nulya/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2022-02-18T19:53:08+00:00">18 февраля, 2022</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">7 Mins Read</span>
</div>
</div> </div>
</span>
</div>
<div class="post next cf">
<a href="https://otus.ru/journal/meropriyatiya-v-otus-15/" title="Next Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-right"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/meropriyatiya-v-otus-15/" class="image-link" rel="next" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Мероприятия в OTUS" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x720-17-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x720-17-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x720-17-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x720-17-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x720-17-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x720-17-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x720-17-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x720-17.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2022/02/oj-1080x720-17-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Мероприятия в OTUS" /> </a>
<div class="post-meta">
<span class="label">Next Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/meropriyatiya-v-otus-15/" data-wpel-link="internal">Мероприятия в OTUS</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/meropriyatiya-v-otus-15/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2022-02-21T10:49:26+00:00">21 февраля, 2022</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">3 Mins Read</span>
</div>
</div> </div>
</span>
</div>
</div>
<section class="related-posts grid-3">
<h4 class="section-head"><span class="title">Читать ещё</span></h4>
<div class="ts-row posts cf">
<article class="post col-4">
<a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" title="Уровень готовности CTO к 2026" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Уровень готовности CTO к 2026" title="Уровень готовности CTO к 2026" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" class="post-link" data-wpel-link="internal">Уровень готовности CTO к 2026</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-16T19:50:59+00:00">16 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" title="Новые уроки ноября: только топ-темы по программированию" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Новые уроки ноября: только топ-темы по программированию" title="Новые уроки ноября: только топ-темы по программированию" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" class="post-link" data-wpel-link="internal">Новые уроки ноября: только топ-темы по программированию</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-09T23:24:11+00:00">9 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/schjot-idjot-na-chasy/" title="Счёт идёт на часы" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Счёт идёт на часы" title="Счёт идёт на часы" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-370x245.png 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/schjot-idjot-na-chasy/" class="post-link" data-wpel-link="internal">Счёт идёт на часы</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-10-30T15:04:59+00:00">30 октября, 2025</time>
</div>
</div>
</article >
</div>
</section>
</article> <!-- .the-post -->
</div>
<aside class="col-4 sidebar">
<div class="inner">
<ul>
<li id="search-2" class="widget widget_search"><h5 class="widget-title"><span>Поиск по блогу</span></h5>
<form method="get" class="search-form" action="https://otus.ru/journal/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Введите запрос и нажмите Enter" value="" name="s" title="Search for:" />
</label>
<button type="submit" class="search-submit"><i class="fa fa-search"></i></button>
</form>
</li>
<li id="tag_cloud-5" class="widget widget_tag_cloud"><h5 class="widget-title"><span>Метки</span></h5><div class="tagcloud"><a href="https://otus.ru/journal/tag/android-2/" class="tag-cloud-link tag-link-74 tag-link-position-1" style="font-size: 12.472222222222pt;" aria-label="Android (34 элемента)" data-wpel-link="internal">Android</a>
<a href="https://otus.ru/journal/tag/c-3/" class="tag-cloud-link tag-link-91 tag-link-position-2" style="font-size: 10.916666666667pt;" aria-label="C (23 элемента)" data-wpel-link="internal">C</a>
<a href="https://otus.ru/journal/tag/c-2/" class="tag-cloud-link tag-link-81 tag-link-position-3" style="font-size: 12.666666666667pt;" aria-label="C# (35 элементов)" data-wpel-link="internal">C#</a>
<a href="https://otus.ru/journal/tag/c/" class="tag-cloud-link tag-link-20 tag-link-position-4" style="font-size: 12.472222222222pt;" aria-label="c++ (34 элемента)" data-wpel-link="internal">c++</a>
<a href="https://otus.ru/journal/tag/computer-science/" class="tag-cloud-link tag-link-209 tag-link-position-5" style="font-size: 15.972222222222pt;" aria-label="computer science (78 элементов)" data-wpel-link="internal">computer science</a>
<a href="https://otus.ru/journal/tag/css/" class="tag-cloud-link tag-link-288 tag-link-position-6" style="font-size: 8.6805555555556pt;" aria-label="CSS (13 элементов)" data-wpel-link="internal">CSS</a>
<a href="https://otus.ru/journal/tag/data-science/" class="tag-cloud-link tag-link-151 tag-link-position-7" style="font-size: 8pt;" aria-label="Data Science (11 элементов)" data-wpel-link="internal">Data Science</a>
<a href="https://otus.ru/journal/tag/devops/" class="tag-cloud-link tag-link-98 tag-link-position-8" style="font-size: 10.138888888889pt;" aria-label="devops (19 элементов)" data-wpel-link="internal">devops</a>
<a href="https://otus.ru/journal/tag/docker/" class="tag-cloud-link tag-link-143 tag-link-position-9" style="font-size: 8.2916666666667pt;" aria-label="Docker (12 элементов)" data-wpel-link="internal">Docker</a>
<a href="https://otus.ru/journal/tag/gamedev/" class="tag-cloud-link tag-link-25 tag-link-position-10" style="font-size: 11.694444444444pt;" aria-label="gamedev (28 элементов)" data-wpel-link="internal">gamedev</a>
<a href="https://otus.ru/journal/tag/hr/" class="tag-cloud-link tag-link-103 tag-link-position-11" style="font-size: 8pt;" aria-label="hr (11 элементов)" data-wpel-link="internal">hr</a>
<a href="https://otus.ru/journal/tag/html/" class="tag-cloud-link tag-link-217 tag-link-position-12" style="font-size: 11.208333333333pt;" aria-label="HTML (25 элементов)" data-wpel-link="internal">HTML</a>
<a href="https://otus.ru/journal/tag/ios/" class="tag-cloud-link tag-link-101 tag-link-position-13" style="font-size: 8.9722222222222pt;" aria-label="iOS (14 элементов)" data-wpel-link="internal">iOS</a>
<a href="https://otus.ru/journal/tag/it/" class="tag-cloud-link tag-link-50 tag-link-position-14" style="font-size: 10.527777777778pt;" aria-label="IT (21 элемент)" data-wpel-link="internal">IT</a>
<a href="https://otus.ru/journal/tag/java/" class="tag-cloud-link tag-link-75 tag-link-position-15" style="font-size: 15.680555555556pt;" aria-label="Java (73 элемента)" data-wpel-link="internal">Java</a>
<a href="https://otus.ru/journal/tag/javascript/" class="tag-cloud-link tag-link-83 tag-link-position-16" style="font-size: 14.319444444444pt;" aria-label="JavaScript (53 элемента)" data-wpel-link="internal">JavaScript</a>
<a href="https://otus.ru/journal/tag/linux/" class="tag-cloud-link tag-link-141 tag-link-position-17" style="font-size: 11.888888888889pt;" aria-label="Linux (29 элементов)" data-wpel-link="internal">Linux</a>
<a href="https://otus.ru/journal/tag/machine-learning/" class="tag-cloud-link tag-link-167 tag-link-position-18" style="font-size: 8.6805555555556pt;" aria-label="Machine Learning (13 элементов)" data-wpel-link="internal">Machine Learning</a>
<a href="https://otus.ru/journal/tag/otus-book/" class="tag-cloud-link tag-link-261 tag-link-position-19" style="font-size: 9.9444444444444pt;" aria-label="otus book (18 элементов)" data-wpel-link="internal">otus book</a>
<a href="https://otus.ru/journal/tag/php/" class="tag-cloud-link tag-link-45 tag-link-position-20" style="font-size: 10.527777777778pt;" aria-label="PHP (21 элемент)" data-wpel-link="internal">PHP</a>
<a href="https://otus.ru/journal/tag/python/" class="tag-cloud-link tag-link-27 tag-link-position-21" style="font-size: 16.944444444444pt;" aria-label="Python (99 элементов)" data-wpel-link="internal">Python</a>
<a href="https://otus.ru/journal/tag/qa/" class="tag-cloud-link tag-link-155 tag-link-position-22" style="font-size: 11.402777777778pt;" aria-label="qa (26 элементов)" data-wpel-link="internal">qa</a>
<a href="https://otus.ru/journal/tag/sql/" class="tag-cloud-link tag-link-38 tag-link-position-23" style="font-size: 12.861111111111pt;" aria-label="SQL (37 элементов)" data-wpel-link="internal">SQL</a>
<a href="https://otus.ru/journal/tag/team-lead/" class="tag-cloud-link tag-link-364 tag-link-position-24" style="font-size: 9.9444444444444pt;" aria-label="team lead (18 элементов)" data-wpel-link="internal">team lead</a>
<a href="https://otus.ru/journal/tag/unity/" class="tag-cloud-link tag-link-24 tag-link-position-25" style="font-size: 8pt;" aria-label="unity (11 элементов)" data-wpel-link="internal">unity</a>
<a href="https://otus.ru/journal/tag/algoritmy/" class="tag-cloud-link tag-link-30 tag-link-position-26" style="font-size: 9.9444444444444pt;" aria-label="Алгоритмы (18 элементов)" data-wpel-link="internal">Алгоритмы</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh/" class="tag-cloud-link tag-link-40 tag-link-position-27" style="font-size: 10.138888888889pt;" aria-label="Базы данных (19 элементов)" data-wpel-link="internal">Базы данных</a>
<a href="https://otus.ru/journal/tag/matematika/" class="tag-cloud-link tag-link-44 tag-link-position-28" style="font-size: 10.916666666667pt;" aria-label="Математика (23 элемента)" data-wpel-link="internal">Математика</a>
<a href="https://otus.ru/journal/tag/arhitektura-po/" class="tag-cloud-link tag-link-10 tag-link-position-29" style="font-size: 9.4583333333333pt;" aria-label="архитектура ПО (16 элементов)" data-wpel-link="internal">архитектура ПО</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh-2/" class="tag-cloud-link tag-link-251 tag-link-position-30" style="font-size: 10.138888888889pt;" aria-label="базы данных (19 элементов)" data-wpel-link="internal">базы данных</a>
<a href="https://otus.ru/journal/tag/vebinar/" class="tag-cloud-link tag-link-201 tag-link-position-31" style="font-size: 13.930555555556pt;" aria-label="вебинар (48 элементов)" data-wpel-link="internal">вебинар</a>
<a href="https://otus.ru/journal/tag/dajdzhest/" class="tag-cloud-link tag-link-308 tag-link-position-32" style="font-size: 10.722222222222pt;" aria-label="дайджест (22 элемента)" data-wpel-link="internal">дайджест</a>
<a href="https://otus.ru/journal/tag/zapis-vebinara/" class="tag-cloud-link tag-link-226 tag-link-position-33" style="font-size: 14.902777777778pt;" aria-label="запись вебинара (61 элемент)" data-wpel-link="internal">запись вебинара</a>
<a href="https://otus.ru/journal/tag/zapis-uroka/" class="tag-cloud-link tag-link-272 tag-link-position-34" style="font-size: 16.069444444444pt;" aria-label="запись урока (80 элементов)" data-wpel-link="internal">запись урока</a>
<a href="https://otus.ru/journal/tag/informacionnaya-bezopasnost/" class="tag-cloud-link tag-link-232 tag-link-position-35" style="font-size: 10.138888888889pt;" aria-label="информационная безопасность (19 элементов)" data-wpel-link="internal">информационная безопасность</a>
<a href="https://otus.ru/journal/tag/karera-v-it/" class="tag-cloud-link tag-link-292 tag-link-position-36" style="font-size: 9.9444444444444pt;" aria-label="карьера в IT (18 элементов)" data-wpel-link="internal">карьера в IT</a>
<a href="https://otus.ru/journal/tag/podborka/" class="tag-cloud-link tag-link-7 tag-link-position-37" style="font-size: 12.666666666667pt;" aria-label="подборка (35 элементов)" data-wpel-link="internal">подборка</a>
<a href="https://otus.ru/journal/tag/podborka-statej/" class="tag-cloud-link tag-link-219 tag-link-position-38" style="font-size: 15.777777777778pt;" aria-label="подборка статей (75 элементов)" data-wpel-link="internal">подборка статей</a>
<a href="https://otus.ru/journal/tag/programmirovanie/" class="tag-cloud-link tag-link-65 tag-link-position-39" style="font-size: 22pt;" aria-label="программирование (332 элемента)" data-wpel-link="internal">программирование</a>
<a href="https://otus.ru/journal/tag/proekt/" class="tag-cloud-link tag-link-321 tag-link-position-40" style="font-size: 11.888888888889pt;" aria-label="проект (29 элементов)" data-wpel-link="internal">проект</a>
<a href="https://otus.ru/journal/tag/proektnaya-rabota/" class="tag-cloud-link tag-link-310 tag-link-position-41" style="font-size: 11.597222222222pt;" aria-label="проектная работа (27 элементов)" data-wpel-link="internal">проектная работа</a>
<a href="https://otus.ru/journal/tag/seti/" class="tag-cloud-link tag-link-181 tag-link-position-42" style="font-size: 12.958333333333pt;" aria-label="сети (38 элементов)" data-wpel-link="internal">сети</a>
<a href="https://otus.ru/journal/tag/testirovanie/" class="tag-cloud-link tag-link-69 tag-link-position-43" style="font-size: 13.930555555556pt;" aria-label="тестирование (48 элементов)" data-wpel-link="internal">тестирование</a>
<a href="https://otus.ru/journal/tag/upravlenie-komandoj/" class="tag-cloud-link tag-link-63 tag-link-position-44" style="font-size: 11.694444444444pt;" aria-label="управление командой (28 элементов)" data-wpel-link="internal">управление командой</a>
<a href="https://otus.ru/journal/tag/habr-2/" class="tag-cloud-link tag-link-203 tag-link-position-45" style="font-size: 13.930555555556pt;" aria-label="хабр (48 элементов)" data-wpel-link="internal">хабр</a></div>
</li>
</ul>
</div>
</aside>
</div> <!-- .ts-row -->
</div> <!-- .main -->
<footer class="main-footer dark bold">
<section class="lower-footer cf">
<div class="wrap">
<div class="links">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
<p class="copyright"> © 2015-2026 OTUS </p>
<div class="to-top">
<a href="#" class="back-to-top"><i class="fa fa-angle-up"></i> Top</a>
</div>
</div>
</section>
</footer>
</div> <!-- .main-wrap -->
<div class="mobile-menu-container off-canvas" id="mobile-menu">
<a href="#" class="close"><i class="fa fa-times"></i></a>
<div class="logo">
</div>
<ul class="mobile-menu"></ul>
</div>
<div class="search-modal-wrap">
<div class="search-modal-box" role="dialog" aria-modal="true">
<form method="get" class="search-form" action="https://otus.ru/journal/">
<input type="search" class="search-field" name="s" placeholder="Search..." value="" required />
<button type="submit" class="search-submit visuallyhidden">Submit</button>
<p class="message">
Type above and press <em>Enter</em> to search. Press <em>Esc</em> to cancel. </p>
</form>
</div>
</div>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/js/url-span.js" id="wbcr-comments-plus-url-span-js"></script>
<script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra">
/* <![CDATA[ */
var eztoc_smooth_local = {"scroll_offset":"30"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js" id="ez-toc-scroll-scriptjs-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js" id="ez-toc-js-cookie-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js" id="ez-toc-jquery-sticky-kit-js"></script>
<script type="text/javascript" id="ez-toc-js-js-extra">
/* <![CDATA[ */
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js" id="ez-toc-js-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/custom-script.js" id="custom-script-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/magnific-popup.js" id="magnific-popup-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.fitvids.js" id="jquery-fitvids-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/object-fit-images.js" id="object-fit-images-js"></script>
<script type="text/javascript" id="contentberg-theme-js-extra">
/* <![CDATA[ */
var Bunyad = {"custom_ajax_url":"\/journal\/piton-i-mashinnoe-obuchenie-chto-pomozhet-razrabotchiku\/"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theme.js" id="contentberg-theme-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theia-sticky-sidebar.js" id="theia-sticky-sidebar-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.slick.js" id="jquery-slick-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jarallax.js" id="jarallax-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/masonry.min.js" id="masonry-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script>
</body>
</html>
<!-- Cache served by breeze CACHE - Last modified: Tue, 10 Mar 2026 18:48:43 GMT -->