Анаконда для python что это
Знакомство с Anaconda: что это такое и как установить
Простое руководство по Anaconda и его установке на Ubuntu 16.04 (64-bit).
May 21, 2019 · 4 min read
Что такое Anaconda?
Перед тем, как изучать Anaconda, рассмотрим Conda.
Цитируем определение Conda с официального блога:
Conda — это менеджер пакетов с открытым кодом и система управления средой, которая работает на Windows, macOS и Linux.
Conda проста в установке, выполнении и обновлении пакетов и зависимостей. Conda легко создает, сохраняет, загружает и переключается между средами на локальном компьютере.
Возникает вопрос: почему вдруг речь зашла о Conda? Все мы знаем, что это система управления пакетами, которая используется для установки и управления пакетов приложений, написанных на Python.
Система имеет и свои ограничения. Ей можно пользоваться только для пакетов Python.
pip работает с Python и пренебрегает зависимостями из не-Python библиотек (HDF5, MKL, LLVM), в исходном коде которых отсутствует файл установщика.
Проще говоря, pip – это менеджер пакетов, который облегчает установку, обновление и удаление пакетов Python. Он работает с виртуальными средами Python.
Conda – это менеджер пакетов для любого программного обеспечения (установка, обновление, удаление). Он работает с виртуальными системными средами.
Кроме того, Conda создает виртуальную среду.
Как возникла Anaconda?
Conda написан на чистом Python, что облегчает его использование в виртуальных средах Python. Кроме того, Conda подходит для библиотек С, пакетов R, Java и т.д.
Он устанавливает двоичные системы. Инструмент conda build создает пакеты из исходного кода, а conda install выполняет установку из пакетов сборки Conda.
Conda является менеджером пакетов для Anaconda — дистрибутива Python, предоставляемого Continuum Analytics. Емкое описание Anaconda следующее:
Anaconda — это дистрибутивы Python и R. Он предоставляет все необходимое для решения задач по анализу и обработке данных (с применимостью к Python).
Anaconda — это набор бинарных систем, включающий в себя Scipy, Numpy, Pandas и их зависимости.
Scipy — это пакет статистического анализа.
Numpy — это пакет числовых вычислений.
Pandas — уровень абстракции данных для объединения и преобразования данных.
Anaconda полезна тем, что объединяет все это в единую систему.
Двоичная система Anaconda — это установщик, который собирает все пакеты с зависимостями внутри вашей системы.
Простая установка
Установка файлов иногда превращается в сущий ад. Но Anaconda куда проще, чем кажется. Я предпочитаю Ubuntu, поскольку здесь установка зависит от выполнения пары команд и хорошего сетевого подключения. Поэтому все становится еще проще. Вот дальнейшие шаги для установки Anaconda.
(Данный процесс подойдет только для 64-битных компьютеров).
Шаг 1: скачивание bash-скрипта Anaconda
Скачать последнюю версию bash-скрипта установщика Anaconda можно с официального сайта. Это можно сделать через выполнение команды curl. Если в вашей системе не установлен curl, то скачайте его через следующую команду.
Перейдите в папку /tmp.
После установки curl выполните следующую команду:
Размер файла — порядка 500 МБ, поэтому установка обычно занимает несколько минут. Пожалуйста, дождитесь полного скачивания файла.
Этот скриншот был сделан после скачивания скрипта. Убедитесь в стабильности сетевого подключения. В противном случае могут возникнуть ошибки при скачивании.
Шаг 2: проверка целостности
Для проверки целостности данных установщика воспользуемся криптографическим алгоритмом хеширования под названием SHA-2 (алгоритм безопасного хеширования).
Контрольная сумма генерируется следующей строкой после выполнения команды.
Шаг 3: запуск bash-скрипта
Мы почти закончили. Пакет загрузился. Теперь осталось запустить скрипт через нужную команду.
Шаг 4: установка криптографических библиотек
Это часть предыдущего процесса. Установщик спрашивает у пользователя, хочет ли он установить все криптографические библиотеки. Введите yes и можете продолжать. Ориентируйтесь по скриншоту ниже – вы увидите примерно ту же информацию.
Шаг 5: подтверждение папки
Последним и итоговым шагом является подтверждение папки, куда будут выгружаться все пакеты Anaconda. Укажите путь, нажмите Enter и готово! Anaconda начнет творить чудеса, устанавливая все, что вам нужно!
Шаг 6: активация и проверка
Для активации установки нужно получить файл
/.bashrc через следующую команду:
Вы увидите данные по всем пакетам, доступным с установкой Anaconda.
Начало работы с Anaconda
Дистрибутив Anaconda включает conda и Anaconda Navigator, а также Python и сотни пакетов, используемых в научных вычислениях. При установке Anaconda все эти элементы также устанавливаются.
Conda работает в командной строке так же, как Anaconda Prompt в Windows и терминал в macOS и Linux.
Navigator — это настольная программа с пользовательским интерфейсом, с помощью которой можно запускать приложения и легко управлять пакетами conda, средами и каналами, не прибегая к командам командной строки.
Можете попробовать conda и Navigator, чтобы решить, что лучше подходит именно вам для управления пакетами и средами. Между ними даже можно переключаться — результат работы из одной программы будет виден во второй.
Выполните простые упражнения в Navigator и командной строке, чтобы решить, что подходит больше.
Первая программа на Python: Hello, Anaconda!
Используйте Anaconda Navigator для запуска приложения. Затем создайте и запустите простую программу на Python с помощью Spyder и Jupyter Notebook.
Откройте Navigator
Windows
Откройте приложение Anaconda Navigator в меню Пуск.
macOS
Откройте Launchpad и кликните по иконке Anaconda Navigator.
Linux
Запустите Python в Spyder IDE
Главный экран Navigator показывает приложения, которые можно запустить.
Если Spyder уже установлен, переходите к следующему пункту.
Закройте Spyder
В меню выберите «Spyder — Закрыть Spyder» (на macOS: «Python — Закрыть Spyder»).
Запустите Python в Jupyter Notebook
Если Jupyter Notebook уже установлен, переходите к следующему пункту.
Закройте Jupyter Notebook
Закройте Navigator
В меню выберите Anaconda Navigator — Закрыть Anaconda-Navigator
Напишите программу на Python с помощью Anaconda Prompt или терминала
Откройте Anaconda Prompt
Windows
В меню Пуск найдите и откройте Anaconda Prompt
macOS
Откройте Launchpad и кликните на окно терминала
Linux
Откройте окно терминала
Запустите Python
В Anaconda Prompt (терминале — в Linux или macOS) введите python и нажмите Enter.
>>> в начале строки значит, что Python запущен.
Напишите программу на Python
Введите print(«Hello Anaconda!») и нажмите Enter.
После нажатия программа запустится. На экран выведется «Hello Anaconda!». Вы официально начали программировать на Python!
Выйдите из Python
На Windows используйте сочетание CTRL-Z и нажмите Enter. На macOS или Linux введите exit() и нажмите Enter.
По желанию: запустите Spyder или Jupyter Notebook из командной строки.
Jupyter Notebook должен запуститься так же, как это было при использовании Anaconda Navigator. Закройте его по тому же принципу.
Работа с Anaconda на примере поиска корреляции курсов криптовалют
Цель этой статьи — предоставить легкое введение в анализ данных с использованием Anaconda. Мы пройдем через написание простого скрипта Python для извлечения, анализа и визуализации данных по различным криптовалютам.
Шаг 1 — Настройка рабочей среды.
Единственные навыки, которые вам понадобятся, это базовое понимание Python.
Шаг 1.1 — Установка Anaconda
Дистрибутив Anaconda можно скачать на официальном сайте.
Установка проходит в стандартном Step-by-Step режиме.
Шаг 1.2 — Настройка рабочей среды проекта
После того, как Anaconda будет установлена, нужно создать и активировать новую среду для организации наших зависимостей.
Зачем использовать среды? Если вы планируете разрабатывать несколько проектов Python на своем компьютере, полезно хранить зависимости (программные библиотеки и пакеты) отдельно, чтобы избежать конфликтов. Anaconda создаст специальный каталог среды для зависимостей каждого проекта, чтобы все было организовано и разделено.
Сделать это можно либо через командную строку
либо через Anaconda Navigator
В данном случае среда активируется автоматически
Затем необходимо установить необходимые зависимости NumPy, Pandas, nb_conda, Jupiter, Plotly, Quandl.
либо через Anaconda Navigator, поочередно каждый пакет
Это может занять несколько минут.
Шаг 1.3 — Запуск Jupyter Notebook
Так же существует вариант через командную строку jupyter notebook и откройте браузер на http://localhost:8888/
и через Anaconda Navigator
Шаг 1.4 — Импорт зависимостей
После того, как вы откроете пустой Jupyter Notebook, первое, что нужно сделать — это импорт необходимых зависимостей.
Затем импорт и активация автономного режима Plotly.
Шаг 2 — Получение данных о ценах на биткоин
Теперь, когда все настроено, мы готовы начать извлечение данных для анализа. Начнем с того, что получим данные о ценах используя бесплатный API от Quandl.
Шаг 2.1 — Определение функции Quandl
Начнем с того, что определим функцию для загрузки и кэширования наборов данных из Quandl.
Мы используем pickle для сериализации и сохранения загруженных данных в виде файла, что позволит нашему сценарию повторно не загружать одни и те же данные при каждом запуске скрипта.
Функция вернет данные в виде набора данных pandas.
Шаг 2.2 — Получение курса биткоина на бирже Kraken
Реализуем это следующим образом:
Для проверки корректности отрабатывания скрипта мы можем посмотреть первые 5 строк полученного ответа используя метод head().
Результат:
Date | Open | High | Low | Close | Volume (BTC) | Volume (Currency) | Weighted Price |
---|---|---|---|---|---|---|---|
2014-01-07 | 874.67040 | 892.06753 | 810.00000 | 810.00000 | 15.622378 | 13151.472844 | 841.835522 |
2014-01-08 | 810.00000 | 899.84281 | 788.00000 | 824.98287 | 19.182756 | 16097.329584 | 839.156269 |
2014-01-09 | 825.56345 | 870.00000 | 807.42084 | 841.86934 | 8.158335 | 6784.249982 | 831.572913 |
2014-01-10 | 839.99000 | 857.34056 | 817.00000 | 857.33056 | 8.024510 | 6780.220188 | 844.938794 |
2014-01-11 | 858.20000 | 918.05471 | 857.16554 | 899.84105 | 18.748285 | 16698.566929 | 890.671709 |
И построить график для визуализации полученного массива
Здесь мы используем Plotly для генерации наших визуализаций. Это менее традиционный выбор, чем некоторые из более известных библиотек, таких как Matplotlib, но я думаю, что Plotly — отличный выбор, поскольку он создает полностью интерактивные диаграммы с использованием D3.js.
Шаг 2.3 — Получение курса биткоина на нескольких биржах
Характер обмена заключается в том, что ценообразование определяется предложением и спросом, поэтому ни одна биржа не содержит «истинной цены» Биткойна. Чтобы решить эту проблему мы будем извлекать дополнительно данные из трех более крупных бирж для расчета совокупного индекса цены.
Мы будем загружать данные каждой биржи в словарь.
Шаг 2.4 — Объединение всех цен в единый набор данных
Определим простую функцию для объединения данных.
Затем объединим все данные по столбцу «Weighted Price».
Теперь посмотрим последние пять строк, используя метод tail (), чтобы убедиться, что все выглядит нормально и так как мы хотели.
Результат:
Date | BITSTAMP | COINBASE | ITBIT | KRAKEN | avg_btc_price_usd |
---|---|---|---|---|---|
2018-02-28 | 10624.382893 | 10643.053573 | 10621.099426 | 10615.587987 | 10626.030970 |
2018-03-01 | 10727.272600 | 10710.946064 | 10678.156872 | 10671.653953 | 10697.007372 |
2018-03-02 | 10980.298658 | 10982.181881 | 10973.434045 | 10977.067909 | 10978.245623 |
2018-03-03 | 11332.934468 | 11317.108262 | 11294.620763 | 11357.539095 | 11325.550647 |
2018-03-04 | 11260.751253 | 11250.771211 | 11285.690725 | 11244.836468 | 11260.512414 |
Шаг 2.5 — Сравнение наборов данных о ценах.
Следующим логическим шагом является визуализация сравнения полученных цен. Для этого мы определим вспомогательную функцию, которая построит график для каждой из бирж при помощи Plotly.
Теперь удалим все нулевые значения, так как мы знаем, что цена никогда не была равна нулю в периоде, который мы рассматриваем.
И пересоздадим график
Шаг 2.6 — Расчет средней цены
Теперь мы можем вычислить новый столбец, содержащий среднесуточную цену биткоина на всех биржах.
Этот новый столбец является нашим индексом цены биткоина. Построим его график, чтобы убедиться, что он выглядит нормально.
Мы будем использовать эти данные позже, чтобы конвертировать обменные курсы других криптовалют в USD.
Шаг 3 — Получение данных по альтернативным криптовалютам
Теперь, когда у нас есть массив данных с ценами биткойна, давайте возьмем некоторые данные об альтернативных криптовалютах.
Шаг 3.1 — Определение функций для работы с Poloniex API.
Для получения данных мы будем использовать API Poloniex. Определим две вспомогательные функции для загрузки и кэширования JSON данных из этого API.
Затем мы определим функцию для форматирования HTTP-запросов Poloniex API и вызова нашей новой функции get_json_data для сохранения полученных данных.
Эта функция на входе получает пару криптовалют например, «BTC_ETH» и вернет исторические данные по обменному курсу двух валют.
Шаг 3.2 — Загрузка данных из Poloniex
Некоторые из рассматриваемых альтернативных криптовалют нельзя купить на биржах напрямую за USD. По этой причине мы будем загружать обменный курс на биткоин для каждой из них, а затем будем использовать существующие данные о ценах биткоина для преобразования этого значения в USD.
Мы загрузим данные об обмене для девяти популярных криптовалют — Ethereum, Litecoin, Ripple, Ethereum Classic, Stellar, Dash, Siacoin, Monero, and NEM.
Теперь у нас есть 9 наборов данных, каждый из которых содержит исторические среднедневные биржевые соотношения биткона к альтернативной криптовалюте.
Мы можем просмотреть последние несколько строк таблицы цен на Ethereum, чтобы убедиться, что она выглядит нормально.
date | close | high | low | open | quoteVolume | volume | weightedAverage |
---|---|---|---|---|---|---|---|
2018-03-01 | 0.079735 | 0.082911 | 0.079232 | 0.082729 | 17981.733693 | 1454.206133 | 0.080871 |
2018-03-02 | 0.077572 | 0.079719 | 0.077014 | 0.079719 | 18482.985554 | 1448.732706 | 0.078382 |
2018-03-03 | 0.074500 | 0.077623 | 0.074356 | 0.077562 | 15058.825646 | 1139.640375 | 0.075679 |
2018-03-04 | 0.075111 | 0.077630 | 0.074389 | 0.074500 | 12258.662182 | 933.480951 | 0.076149 |
2018-03-05 | 0.075373 | 0.075700 | 0.074723 | 0.075277 | 10993.285936 | 826.576693 | 0.075189 |
Шаг 3.3 — Конвертирование цен в USD.
Так как теперь у нас есть обменный курс на биткоин для каждой криптовалюты и у нас есть индекс исторических цен биткоина в USD, мы можем напрямую рассчитать цену в USD для каждой альтернативной криптовалюты.
Этим мы создали новый столбец в каждом наборе данных альтернативных криптовалют с ценами в USD.
Теперь добавим в набор данных цены биткоина в качестве конечного столбца.
В результате мы имеем набор данных, содержащий ежедневные цены в USD для десяти криптовалют, которые мы рассматриваем.
Этот график дает довольно солидную «общую картину» того, как обменные курсы каждой валюты менялись в течение последних нескольких лет.
В данном примере мы используем логарифмическую шкалу оси Y, чтобы сравнить все валюты на одном и том же участке. Вы можете попробовать различные значения параметров (например, scale = ‘linear’), чтобы получить разные точки зрения на данные.
Шаг 3.4 — Вычисление корреляции криптовалют.
Вы можете заметить, что обменные курсы криптовалюты, несмотря на их совершенно разные ценности и волатильность, кажутся слегка коррелированными. И как видно по всплеску в апреле 2017 года, даже небольшие колебания, похоже, происходят синхронно на всем рынке.
Сначала мы вычислим корреляции для 2016 года.
Чтобы визуализировать эти результаты, мы создадим еще одну вспомогательную функцию.
Здесь темно-красные значения представляют собой сильные корреляции, а синие значения представляют собой сильные обратные корреляции. Все остальные цвета представляют собой разную степень слабых/несуществующих корреляций.
Что говорит нам этот график? По сути, это показывает, что было очень мало статистически значимой связи между тем, как цены разных криптовалют колебались в течение 2016 года.
Теперь, чтобы проверить нашу гипотезу о том, что криптотермины стали более коррелированными в последние месяцы, повторим те же тесты, используя данные за 2017 и 2018 года.
Результат:
DASH | ETC | ETH | LTC | SC | STR | XEM | XMR | XRP | BTC | |
---|---|---|---|---|---|---|---|---|---|---|
DASH | 1.000000 | 0.387555 | 0.506911 | 0.340153 | 0.291424 | 0.183038 | 0.325968 | 0.498418 | 0.091146 | 0.307095 |
ETC | 0.387555 | 1.000000 | 0.601437 | 0.482062 | 0.298406 | 0.210387 | 0.321852 | 0.447398 | 0.114780 | 0.416562 |
ETH | 0.506911 | 0.601437 | 1.000000 | 0.437609 | 0.373078 | 0.259399 | 0.399200 | 0.554632 | 0.212350 | 0.410771 |
LTC | 0.340153 | 0.482062 | 0.437609 | 1.000000 | 0.339144 | 0.307589 | 0.379088 | 0.437204 | 0.323905 | 0.420645 |
SC | 0.291424 | 0.298406 | 0.373078 | 0.339144 | 1.000000 | 0.402966 | 0.331350 | 0.378644 | 0.243872 | 0.325318 |
STR | 0.183038 | 0.210387 | 0.259399 | 0.307589 | 0.402966 | 1.000000 | 0.339502 | 0.327488 | 0.509828 | 0.230957 |
XEM | 0.325968 | 0.321852 | 0.399200 | 0.379088 | 0.331350 | 0.339502 | 1.000000 | 0.336076 | 0.268168 | 0.329431 |
XMR | 0.498418 | 0.447398 | 0.554632 | 0.437204 | 0.378644 | 0.327488 | 0.336076 | 1.000000 | 0.226636 | 0.409183 |
XRP | 0.091146 | 0.114780 | 0.212350 | 0.323905 | 0.243872 | 0.509828 | 0.268168 | 0.226636 | 1.000000 | 0.131469 |
BTC | 0.307095 | 0.416562 | 0.410771 | 0.420645 | 0.325318 | 0.230957 | 0.329431 | 0.409183 | 0.131469 | 1.000000 |
DASH | ETC | ETH | LTC | SC | STR | XEM | XMR | XRP | BTC | |
---|---|---|---|---|---|---|---|---|---|---|
DASH | 1.000000 | 0.775561 | 0.856549 | 0.847947 | 0.733168 | 0.717240 | 0.769135 | 0.913044 | 0.779651 | 0.901523 |
ETC | 0.775561 | 1.000000 | 0.808820 | 0.667434 | 0.530840 | 0.551207 | 0.641747 | 0.696060 | 0.637674 | 0.694228 |
ETH | 0.856549 | 0.808820 | 1.000000 | 0.700708 | 0.624853 | 0.630380 | 0.752303 | 0.816879 | 0.652138 | 0.787141 |
LTC | 0.847947 | 0.667434 | 0.700708 | 1.000000 | 0.683706 | 0.596614 | 0.593616 | 0.765904 | 0.644155 | 0.831780 |
SC | 0.733168 | 0.530840 | 0.624853 | 0.683706 | 1.000000 | 0.615265 | 0.695136 | 0.626091 | 0.719462 | 0.723976 |
STR | 0.717240 | 0.551207 | 0.630380 | 0.596614 | 0.615265 | 1.000000 | 0.790420 | 0.642810 | 0.854057 | 0.669746 |
XEM | 0.769135 | 0.641747 | 0.752303 | 0.593616 | 0.695136 | 0.790420 | 1.000000 | 0.744325 | 0.829737 | 0.734044 |
XMR | 0.913044 | 0.696060 | 0.816879 | 0.765904 | 0.626091 | 0.642810 | 0.744325 | 1.000000 | 0.668016 | 0.888284 |
XRP | 0.779651 | 0.637674 | 0.652138 | 0.644155 | 0.719462 | 0.854057 | 0.829737 | 0.668016 | 1.000000 | 0.712146 |
BTC | 0.901523 | 0.694228 | 0.787141 | 0.831780 | 0.723976 | 0.669746 | 0.734044 | 0.888284 | 0.712146 | 1.000000 |
И вот мы видим то, о чем и предполагали — почти все криптовалюты стали более взаимосвязанными друг с другом по всем направлениям.
На этом будем считать, что введение в работу с данными в Anaconda успешно пройдено.