Python Pandas отказывается от Numpy для более быстрого пирога

Python Pandas собирается получить повышение производительности: когда будет выпущена долгожданная версия 3.0 библиотеки анализа данных, она будет поставляться с более быстрым двигателем для загрузки и считывания столбчатых данных. Pyarrow займет место Numpy, до сих пор использовались панды математической библиотеки.

В настоящее время Pandas уже поддерживает Pyarrow, и сделал это, по крайней мере, с момента 2 версии 2 в апреле 2023 года. И в следующей версии v3.0 Pyarrow будет обязательной зависимостью, а Pyarrow.string — это тип по умолчанию, предполагаемый для строковых данных.

«Итак, хорошие новости, Пейрроу в 10 раз быстрее. Что еще вам нужно знать? Как это очень смехотворно быстрее», — посоветовал инструктор Python Рубен Лернер во время сессии о «Революции Pyarrow», которая проводилась в Pycon 2025 ранее в этом месяце в Питтсбурге.

Путь панд

Созданная в 2008 году Financial Quant Wes McKinney, библиотека Pandas теперь используется многими для управления большими наборами данных. Первоначально он создал его поверх научной вычислительной библиотеки Numpy, которая, помимо прочих функций, предлагает возможность хранить большие массивы данных в большом разнообразии форматов.

Серия Pandas-это в основном обертка вокруг одномерной массивы Numpy; Рамка данных Pandas представляет собой обертку вокруг двухмерной массивы данных. Поскольку он написан в C и векторизировал, Pandas делает это более быстрее и эффективнее, чем сам Python.

Но Numpy, построенный в 2005 году в качестве обновления в числовой библиотеке, предшествовал многим проблемам данных за последнее десятилетие, таких как потоковая передача данных или вложенные строки или использование сложных типов данных. У него проблемы с датами; Он не имеет методов сжатия и даже не так хорош для переработки партии.

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

Представляем Парроу

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

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

Сторонная ориентация обеспечивала более быстрые данные данных и считывается для большинства двигателей обработки данных с открытым исходным кодом, включая Spark, Flink, Dremio, Drill и Ray. Много моделирования искусственного интеллекта построено на столбчатых данных, поэтому формат очень предпочтительнее искусственных технологий, таких как Tensorflow и Pycharm.

Лернер предложил пример того, как плохой Numpy находится в памяти, используя 2,2 ГБ CSV (запятые значения) нарушений парковки Нью -Йорка за 2020 год, который состоит из примерно 12 миллионов строк.

Чтение в том, что файл CSV в память займет Python 55,8 секунды, но Pyarrow сделал работу за 11,8 секунды.

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

Этот файл CSV 2,2 ГБ занял только 1,4 ГБ при визуализации в формате перья и 379 МБ в парке. Поскольку данные являются двоичными, Пандас не должен делать паузу, чтобы выяснить тип данных, отметил Лернер.

Производительность также увеличилась: с перьями весь этот файл CSV можно было прочитать за 10,6 секунды, а с паркетом это заняло всего 9,1 секунды, согласно тестам Лернера.

Выпуск Pandas 3.0

Однако когда появятся Pandas 3.0, все еще остается открытым вопросом. Первоначально Pandas 3.0 должен был быть выпущен в апреле 2024 года, который пришел и ушел без релиза, а также в прессе, без запланированного выпуска. Последние релизы, v. 2.23, были выпущены в сентябре.

Во многих отношениях Pandas к настоящему времени является устаревшей технологией, поэтому внедрение Pyarrow является хорошей новостью для организаций, которые хотят ускорить операции по созданию данных со всей грязной работой по переходу на новую платформу.

«Реальное преимущество здесь заключается в том, что вы можете сохранить использование панд, сохранить тот же API», — сказал Лернер. «Вы поменяете бэкэнд на новую, и вуаля, вы сохраняете тонны времени и тонны памяти».

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Joab Jackson является старшим редактором нового стека, охватывающего облачные нативные вычисления и системы системы. Он сообщил об инфраструктуре и развитии IT более 25 лет, в том числе в IDG и государственных компьютерных новостях. До этого он … читал больше от Джоаба Джексона

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *