Краткое введение в инструменты ML
На сегодняшний день существует множество инструментов для работы с машинным обучением (ML). Когда я, автор этой статьи, только начинал изучать ML, инструменты были ограничены. Наиболее популярными были такие как R и Matlab (Octave). Эти программы были довольно громоздкими и требовали много времени на изучение, а иногда и лицензий. Со временем появление Python и его библиотек, таких как NumPy, SciPy, Pandas, Matplotlib, Scikit-learn, TensorFlow и PyTorch, изменило ситуацию. Python стал основным языком программирования для машинного обучения и биг даты. Пусть вас не пугает такое обилие. В конце концов, инструменты меняются, а математические основы остаются. Понимание основ позволит вам легко адаптироваться к новым инструментам и библиотекам.
Эта статья подразумевает, что вы уже знакомы с основами компьютерной грамотности — вы знаете, как устанавливать программы, работать с файлами и командной строкой.
Что касается Python, то на момент написания статьи он является наиболее популярным языком программирования для машинного обучения. Conda и Jupyter — это инструменты, которые облегчают работу с Python и его библиотеками. Давайте рассмотрим их подробнее.

Установка Python и зачем нужен Conda
Python — язык программирования. Он не связан с конкретной реализацией и представляет собой набор правил для написания программ. Если мы напишем программу на Python, она будет работать на любой платформе, где установлен интерпретатор Python. Интерпретатор — это программа, которая выполняет код, написанный на языке Python. Существуют разные интерпретаторы Python, но наиболее популярным является CPython. Он написан на языке C и является стандартной реализацией Python. То есть, если вы установите CPython, то сможете запускать программы на Python. Но это не единственный интерпретатор. Существуют и другие, такие как PyPy, Jython и IronPython. Они имеют свои особенности и преимущества, но CPython является наиболее распространённым и поддерживаемым, поэтому в статья я буду использовать именно его.
Существует несколько способов установки Python. Вы можете скачать его с официального сайта python.org или воспользоваться менеджером пакетов, например, apt для Ubuntu или brew для MacOS.
Однако не спешите устанавливать Python с официального сайта. Дело в том, что программное обеспечение постоянно обновляется, и это касается не только библиотек, но и самого Python. Представьте, что вы установили CPython 3.12, а через месяц вышла версия 3.13. Чтобы использовать новую версию, вам придётся удалить старую и установить новую. Но это не единственная проблема. Если вы используете несколько библиотек, они могут зависеть от разных версий Python. Например, одна библиотека работает только с Python 3.8, а другая — только с Python 3.9. В этом случае вам придётся устанавливать несколько версий Python и управлять ими вручную, что довольно неудобно.
Conda и venv: зачем нужны окружения
Чтобы решить проблему с множеством версий CPython и библиотек, был создан менеджер пакетов Conda. Он позволяет устанавливать и переключаться между разными версиями Python. Conda использует так называемые окружения — в командной строке вы можете управлять, в каком окружении вы работаете. Каждое окружение имеет свою версию Python и свой набор библиотек. Библиотеки, установленные в одном окружении, не будут доступны в другом. Это позволяет легко управлять зависимостями и версиями библиотек.
Важно: Окружения позволяют изолировать проекты друг от друга, чтобы избежать конфликтов между версиями библиотек и версиями CPython.
Хотя Conda и позволяет создавать окружения, он не является единственным инструментом для этого. Существует также встроенный инструмент Python — venv (virtual environment). Он позволяет создавать так называемые виртуальные окружения. Разница между Conda окружением и venv окружением заключается в том, что venv только создаёт подокружение, а Conda также управляет версиями CPython и библиотек (в том числе инструментами, необходимыми для компиляции библиотек CPython).
Пример: разница между Conda и venv
Conda окружение
- Вы установили Conda и создали два окружения:
baseс версией Python 3.12 иpy311с версией Python 3.11. - В окружении
baseустановили библиотеку A, а в окруженииpy311— библиотеку B (используяconda install). - Если вы хотите использовать библиотеку A в окружении
py311, то её нужно установить там отдельно. Между окружениями библиотеки изолированы.
- Вы установили Conda и создали два окружения:
venv внутри Conda окружения
- Представьте, что Вы работаете в Conda окружении
py311и у вас есть два проекта, оба используют Python 3.11, оба используют библиотеку A, но разные версии библиотеки B. - На помощь приходит
venv: создайте два виртуальных окружения внутриpy311, например,venv1иvenv2. - В каждом из них можно установить свою версию библиотеки B.
- Внутри виртуального окружения доступны все библиотеки, установленные в окружении Conda.
- Если в Conda-окружении установлена библиотека A, она будет доступна во всех виртуальных окружениях, созданных внутри него.
- Если внутри виртуального окружения вы установите библиотеку A другой версии, чем в Conda окружении, то она будет доступна только внутри этого виртуального окружения и будет использоваться вместо библиотеки A из Conda окружения.
- Представьте, что Вы работаете в Conda окружении
Как установить Conda
Установить Conda довольно просто. Вы можете скачать и установить его с официального сайта anaconda.com.
Возможно также использовать Miniconda — это облегчённая версия Anaconda, которая содержит только базовые инструменты и библиотеки. Miniconda позволяет установить только те пакеты, которые вам нужны, и занимает меньше места на диске. Вы можете скачать Miniconda с официального сайта и установить его, следуя инструкциям.
После установки Conda вы сможете использовать команду conda в терминале.
Давайте для примера создадим окружение с Python 3.12, создадим директорию для проекта и установим библиотеку numpy в окружение. Для этого выполним следующие команды в терминале:
Примечание: Автор использует bash, если вы используете Windows, то я рекомендую использовать WSL (Windows Subsystem for Linux). WSL позволяет запускать Linux-приложения на Windows. Если вы не хотите использовать WSL, то команды будут отличаться. Например, вместо mkdir используйте md, для активации виртуального окружения используйте venv\Scripts\activate.bat и т. д.
# Создаём окружение с Python 3.12
conda create -n py3.12 python=3.12
# Активируем окружение
conda activate py3.12
# Создаём директорию для проекта
mkdir my_project
# Переходим в директорию проекта
cd my_project
# Создаём виртуальное окружение внутри Conda-окружения
python -m venv venv
# Активируем виртуальное окружение
source venv/bin/activate
# Устанавливаем библиотеку numpy
pip install numpy

Обратите внимание: В этом примере мы создали виртуальное окружение внутри Conda-окружения. Это позволяет изолировать зависимости проекта и управлять ими отдельно от других проектов. Теперь, для примера, вы можете использовать библиотеку
numpyв своём проекте. Командная строка также сообщает имя активного окружения и виртуального окружения, в котором вы находитесь — это помогает не запутаться.Чтобы выйти из виртуального окружения, выполните команду
deactivate. Чтобы выйти из Conda-окружения — командуconda deactivate.
PIP и Jupyter
Что такое PIP?
PIP — это менеджер пакетов для Python. Он позволяет устанавливать и управлять библиотеками, написанными на Python. PIP является стандартным инструментом для установки библиотек и входит в состав Conda и CPython. Вы можете использовать его для установки библиотек, которые не входят в стандартную библиотеку Python. Например, чтобы установить библиотеку numpy в предыдущем примере, мы использовали команду
pip install numpy
PIP также позволяет устанавливать библиотеки из файловых архивов и Git-репозиториев (но сейчас я не буду углубляться в это).
Что такое Jupyter Notebook?
Один из самых популярных инструментов для работы с Jupyter — это Jupyter Notebook. По сути, это веб-приложение, которое открывается в браузере. Оно представляет собой блокнот, в котором можно писать код на Python, выполнять его по частям и видеть результат прямо в браузере. Jupyter Notebook позволяет создавать интерактивные документы, которые содержат текст, код и графику. Это очень удобно для работы с ML и Data Science, так как позволяет быстро проверять идеи и делиться результатами с другими.
Я рекомендую устанавливать Jupyter Notebook в venv, чтобы он видел все установленные внутри venv зависимости. Для этого находясь в активированном виртуальном окружении выполните команду:
pip install notebook
# Запускаем Jupyter Notebook
jupyter notebook

Пример результата запуска Jupyter Notebook
[I 2025-05-17 15:40:05.086 ServerApp] notebook | extension was successfully loaded.
[I 2025-05-17 15:40:05.087 ServerApp] Serving notebooks from local directory: /tmp
[I 2025-05-17 15:40:05.087 ServerApp] Jupyter Server 2.15.0 is running at:
[I 2025-05-17 15:40:05.087 ServerApp] http://localhost:8888/tree?token=7abd71ba4a969bcdd99c1e9054e5a68c1de46bcd1b56cfea
[I 2025-05-17 15:40:05.087 ServerApp] http://127.0.0.1:8888/tree?token=7abd71ba4a969bcdd99c1e9054e5a68c1de46bcd1b56cfea
[I 2025-05-17 15:40:05.087 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 2025-05-17 15:40:05.125 ServerApp]
To access the server, open this file in a browser:
file:///home/spgtty/.local/share/jupyter/runtime/jpserver-1269648-open.html
Or copy and paste one of these URLs:
http://localhost:8888/tree?token=e5a68c1de46bcd1b56cfea
http://127.0.0.1:8888/tree?token=e5a68c1de46bcd1b56cfea
[I 2025-05-17 15:40:05.322 ServerApp] Skipped non-installed server(s): bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server
Теперь вы можете открыть браузер и перейти по адресу из вывода команды. В данном примере это http://127.0.0.1:8888/tree?token=<ваш токен>. Вы увидите интерфейс Jupyter Notebook, где сможете создавать и редактировать блокноты.

Заключение
В этой статье мы рассмотрели основные инструменты для работы с ML и Data Science. Мы узнали, что Python — это язык программирования, Conda — менеджер CPython, пакетов и окружений, PIP — менеджер пакетов для Python, а Jupyter Notebook — это интерактивный блокнот для работы с кодом. Этого должно быть достаточно, чтобы начать экспериментировать. Jupyter Notebook — основной инструмент автора этой статьи. В следующих публикациях я буду использовать Notebook для демонстрации кода. Теперь вы можете установить Python, Conda и Jupyter Notebook и начать изучать ML и Data Science вместе со мной.
