На улице ML-специалистов праздник: состоялся крупнейший апдейт NumPy за последние 18 лет

Команда NumPy выпустила релиз под версией 2.0.0 — первый мажорный релиз с 2006 года. Новых возможностей появилось немерено

Обложка: На улице ML-специалистов праздник: состоялся крупнейший апдейт NumPy за последние 18 лет

NumPy, популярная Python-библиотека для научных вычислений, получила первое мажорное обновление с 2006 года — NumPy 2.0.0.

Этот апдейт является результатом титанической работы команды разработчиков. Он включает в себя множество нововведений, улучшений производительности и изменений в API, как для Python, так и для C.

Новые функции NumPy 2.0.0

Одной из самых значимых новинок библиотеки стало добавление нового типа данных для строк переменной длины StringDType, а также нового пространства имен numpy.strings с высокопроизводительными функциями для обработки строк.

Также в инструмент внедрили поддержку float32 и longdouble во всех функциях numpy.fft и соответствие стандарту Array API в основном пространстве имен библиотеки.

Улучшения производительности

Функции сортировки, такие как sort, argsort, partition и argpartition, были ускорены благодаря использованию библиотек Intel x86-simd-sort и Google Highway.

Потенциально это может привести к значительному бусту производительности, в зависимости от аппаратного обеспечения.

Добавлена также поддержка macOS Accelerate и уменьшен размер бинарных файлов для macOS 14 и новее, что значительно ускоряет линейную алгебру на этих системах.

Улучшения Python API

NumPy 2.0.0 также ввел четкое разделение между публичным и приватным API с новой модульной структурой, что упрощает использование библиотеки.

Было удалено множество устаревших функций и алиасов, что сделало инструмент более понятным для новых пользователей. Кроме того, были добавлены новые функции introspection, такие как isdtype и канонические имена для типов данных.

Обновления C API

В новом релизе также был обновлен публичный C API для создания пользовательских типов данных, удалены устаревшие функции и макросы, а также скрыты приватные внутренние части для упрощения расширяемости в будущем.

Добавлены новые функции инициализации: PyArray_ImportNumPyAPI и PyUFunc_ImportUFuncAPI.

Обратная совместимость и переход

Несмотря на множество улучшений, некоторые изменения нарушают обратную совместимость.

Это связано с обновлением ABI и изменениями в API, которые могут требовать адаптации существующего кода. Пользователям рекомендуется обновить свои IDE и токены доступа, чтобы избежать проблем совместимости.

Для более подробной информации об обновленной библиотеки, загляните на официальный сайт NumPy.

Рекомендуем