Data analysis. NumPy. Часть 1

Эта статья первая в серии про базовый набор инструментов для первичного анализа данных с помощью Python.
В первую очередь рассмотрим базовую библиотеку для работы с многомерными массивами NumPy.
Pandas позволяет эффективно работать с неоднородными данными. Удобно загружать, обрабатывать и анализировать табличные данные  с помощью SQL-подобных запросов.
С помощью Matplotlib, Seaborn, Plotly реализуется отличная визуализация.

Часть 1. Введение в NumPy
Часть 2. Подробней о NumPy
Часть 3. Первичный анализ. Pandas
Часть 4. Визуализация. Matplotlib и Seaborn
Часть 5. Немного machine learning с помощью scikit-learn
Часть 6. Больше данных. Обучение с Vowpal Wabbit

В статье будет описания и различного рода заметки, а примеры с комментариями написаны в jupyter notebook

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



  • атрибуты массивов - размер, форма, объем, тип
  • индексация - получение и задание значений элементам
  • срезы - получение и задания подмассивов
  • изменение формы массива
  • слияние и разбиение массовов

Срезы массивов возвращают представления(views), а не копии(copies) данных массива. Этим срезы массивов Numpy отличаются от срезов списков.


  • Арифметические функции
  • Абсолютное значение
  • Тригонометрические функции
  • Показательные функции и логарифмы
  • Указание массива для вывода результата
  • Сводные показатели
Универсальные функции(universal functions, ufuncs) в Numpy могут намного ускорить выполнение повторяющихся вычислений над элементами массивов.
Проблемы возникают при повторении множества мелких операций, например при выполнении обработки всех элементов массива в цикле. Проблема в проверки типов и диспетчеризации функций, выполняемых CPython. Каждый раз Python сначала проверяет тип обьекта и выполняет динамический поиск подходящей для этого типа функции.
Библиотека Numpy предоставляет для многих типов операций удобный интерфейс для компилируемой процедуры со статической типизацией. Векторизованный подход спроектирован так, чтобы переносить цикл в скомпилированный слой.
Существует два вида универсальных функций: унарные универсальные функции, с одним аргументов, и бинарные, с двумя.


  • Минимум, максимум, сума и пр
  • Многомерные сводные показатели
Ключевое слово axis задает измерение массива, которое будет "схлопнуто"(collapsed), а не возвращаемое измерение.

В следующей части рассмотрим транслирование,  сравнение, "прихотливая" индексация, сортировка и т.д.

Комментарии

Популярные сообщения из этого блога

Асинхронное выполнение процедур или триггера в MS SQL Server

Рекурсивные SQL запросы

Кратко про SQLAlchemy Core