Анализ данных

Pandas, numpy и другие инструменты

Параллельные вычисления в Python с Dask

Структуры данных в NumPy и Pandas основополагающие, но они ограничены размером ОЗУ и одним ядром процессора. Dask позволяет производить параллельные вычисления на данных, размер которых превышает доступный объем памяти, на нескольких ядрах или нескольких машинах. Можно даже сконфигурировать Dask для использования ресурсов тысячи машин — каждой с несколькими ядрами.

Читать дальше

Python: векторизация циклов с условиями дает ускорение примерно на 20—50%

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

Читать дальше

Особенности операций среза и индексации с использованием мультииндекса в Pandas

Что такое lexsort_depth в мультииндексе? Почему мультииндекс нужно сортировать для операций среза/индексации? Почему поиск по метке индекса может быть медленным?

Читать дальше

Параллелизм в pandas с помощью модуля multiprocessing

В pandas пока нет втроенной функции, которая позволяла бы производить вычисления, используя параллелизм, поэтому если требуется обработать большой объем данных, это может стать непростой задачей. Один из простейших способов ускорить обработку данных — разбить дейта-фрейм на отдельные части и затем, используя модуль multiprocessing, применить метод apply() и собрать дейта-фрейм обратно.

Читать дальше