Код
#новости

Python-библиотека NumPy обновилась до версии 2.0.0

Это первое значительное обновление библиотеки с 2006 года.

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

Что нового

Версия 2.0.0 — первый значительный релиз библиотеки с 2006 года. Она включает в себя новые возможности, множество новых функций и изменений как в Python, так и в ABI, в API и в C-API.

Разработчики библиотеки NumPy заменили в новой версии целочисленные типы, применяемые по умолчанию на платформе Windows. Теперь на 64-битных системах применяется 64-битный целый тип, а на 32-битных — 32-битный.

Кроме того, создатели проекта заменили и удалили некоторые определения в C-API. Это, например, коснулось структуры PyArray_Descr. Отныне максимальное число измерений и аргументов, выставляемое через макросы NPY_MAXDIMS и NPY_MAXARGS, увеличилось до 64. А все комплексные типы переведены на использование штатных типов из спецификации C99 (cfloat_t, cdouble_t, clongdouble_t).

В NumPy 2.0.0 разработчики добавили новый C-API для создания собственных dtype, а также включили новые упрощённые функции инициализации PyArray_ImportNumPyAPI и PyUFunc_ImportUFuncAPI.

В Python API, который входит в состав библиотеки NumPy, теперь есть более явное разделение между публичными и приватными API, а также появилась новая структура модулей. Разработчики вынесли из основного пространства имён «np» около 100 функций, модулей и констант и объявили их устаревшими

NumPy 2.0.0 теперь поддерживает типы float32 и longdouble во всех функциях numpy.fft, а также стандартный API Array в основном пространстве имён. Кроме того, появилось новое пространство имён и типы для строк переменной длины.

Нарушения совместимости

Тем не менее ряд нововведений и функций нарушает совместимость с предыдущим значительным релизом NumPy и его компонентами.

Так, Python-библиотека SciPy, собранная с помощью NumPy 1.x, потребует перекомпиляции для работы с NumPy 2.0. В некоторых случаях использование второй версии в приложениях может потребовать внесение изменений в код.

Самое крупное нарушение совместимости связано с сохранением точности скалярных выражений. Так, например, выражение np.float32(3) + 3 вернёт значение с типом float32, а не float64. Кроме того, выражения с несколькими типами возвращают результат, используя тип с наивысшей точностью, — так, np.array ([3], dtype=np.float32) + np.float64(3) вернёт значение с float64.

О библиотеке NumPy

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

Разработчики NumPy написали библиотеку на языке Python, используя оптимизацию на языке C. Её опубликовали на GitHub под лицензией BSD.

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована