Вам понадобится всего 10 минут. И Mac M1.

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

Первый вариант подходит, но Python не запускается изначально, поэтому теряется некоторая производительность. Второй, ну, утомительный и нервный.

Но есть и третий вариант.

Сегодня вы узнаете, как настроить Python для работы через Miniforge на любом чипе M1. Мы также рассмотрим несколько примеров, чтобы выяснить, действительно ли Python работает изначально.

Статья построена следующим образом:

  • Установка и настройка Miniforge
  • Тестирование производительности
  • Последние мысли

Установка и настройка Miniforge

Я потратил так много времени на настройку M1 Mac для анализа данных. Он никогда не работал без изъянов. Пока не нашел этот вариант. Полная настройка займет от 5 до 10 минут, в зависимости от скорости Интернета.

Для начала вам необходимо установить Homebrew. Это менеджер пакетов для Mac, и вы можете установить его, выполнив следующую строку из Терминала:

/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Помните: если вы настраиваете новый Mac M1, скорее всего, у вас не будут установлены инструменты сборки XCode, которые необходимы для Homebrew. Терминал сообщит вам, если они отсутствуют, и спросит, хотите ли вы их установить.

После установки обоих инструментов сборки XCode и Homebrew вы можете перезапустить Терминал и установить Miniforge:

brew install miniforge

Размер загрузки составляет пару сотен МБ, поэтому загрузка займет некоторое время. После этого снова перезапустите Терминал.

Вот и все! Miniforge установлен, и вы готовы создавать виртуальные среды и инициализировать conda. Следующая строка терминала создаст виртуальную среду с именем base_env на основе Python 3.8:

conda create — name base_env python=3.8

Наконец, инициализируйте conda для оболочки Z (zsh):

conda init zsh

Просто для удовольствия перезапустите Терминал еще раз, прежде чем активировать среду. После вызова init по умолчанию будет активирована среда base. Вы можете изменить его, выполнив следующую строку:

conda activate base_env

Вы должны увидеть что-то вроде этого:

В качестве последнего шага давайте установим пару библиотек Python через conda:

conda install numpy pandas matplotlib plotly scikit-learn jupyter jupyterlab

Это все. Теперь давайте проведем пару тестов.

Тестирование производительности

Откройте Jupyter Lab из виртуальной среды, если вы следите за происходящим. Для начала давайте импортируем обычных подозреваемых в науке о данных - Numpy, Pandas и Scipy - просто чтобы убедиться, что все работает правильно:

Теперь давайте сделаем простой цикл без каких-либо библиотек. Вот код:

Как видите, на заполнение ячейки ушло 7,5 секунд. Чтобы убедиться, что использовалась собственная версия Python, а не версия Intel в Rosetta, мы можем проверить значения Architecture для Python3.8 в Activity Monitor:

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

А вот и монитор активности:

Как видите, Numpy работает как шарм. Наконец, давайте проведем тест с пандами. Мы проделаем те же операции, что и с Numpy, поэтому нет необходимости в дополнительных объяснениях:

Давайте еще раз взглянем на монитор активности:

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

Последние мысли

В заключение - нет необходимости биться головой об стену при настройке нового Mac M1 для анализа данных. Конечно, процесс отличается от Intel (если вы не используете Miniforge), но процесс по-прежнему прост.

Следите за новостями, чтобы увидеть больше тестов M1 и подробных сравнений с его старшим братом - 16 Intel i9 2019 года выпуска.

Спасибо за прочтение.

Учить больше

Оставайся на связи

  • Следуйте за мной на Medium, чтобы увидеть больше подобных историй
  • Подпишитесь на мою рассылку"
  • Подключиться к LinkedIn