Вышел NumPy 2.0.0. Самые значительные обновления с 2006 года для Python разработчиков

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

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

Рекомендуем Python, канал, где разбрано 1900 вопросов с собеседований, а здесь Папка отборных каналов для Python разработчиков ,

NumPy 2.0.0 является первым значительным обновлением с 2006 года. В новой версии добавлены новые функции и улучшена производительность, а также внесены изменения в ABI, Python API и C-API, нарушающие обратную совместимость. Например, библиотека SciPy, собранная с NumPy 1.x, потребует перекомпиляции для работы с NumPy 2.0. В некоторых случаях для использования NumPy 2.0 в приложениях потребуется внести изменения в код.

Одно из наиболее значимых изменений связано с сохранением точности скалярных выражений. Например, выражение “np.float32(3) + 3” теперь вернет значение типа float32, а не float64. В выражениях с несколькими типами для результата будет использоваться тип с наивысшей точностью, например, “np.array([3], dtype=np.float32) + np.float64(3)” вернет значение типа float64. Также изменены целочисленные типы по умолчанию на платформе Windows: на 64-разрядных системах теперь используется 64-разрядный целый тип, а на 32-разрядных – 32-разрядный (ранее использовался аналог типа long из C, теперь это эквивалент np.intp).

Некоторые определения в C-API были изменены или удалены, например, структура PyArray_Descr. Максимальное число измерений и аргументов, выставляемое через макросы NPY_MAXDIMS и NPY_MAXARGS, увеличено до 64. Все комплексные типы переведены на использование стандартных типов из спецификации C99 (cfloat_t, cdouble_t, clongdouble_t). Добавлен новый C API для создания собственных dtype. Также предложены новые упрощённые функции инициализации PyArray_ImportNumPyAPI и PyUFunc_ImportUFuncAPI.

В Python API обеспечено более четкое разделение между публичными и приватными API, представлена новая структура модулей. Около 100 функций, модулей и констант вынесены из основного пространства имен “np”, объявлены устаревшими или удалены. Пространство имен np.lib было очищено. Число объектов в основном пространстве имен сокращено на 10%, а в пространстве имен numpy.lib – на 80%. Пространство имен numpy.core переведено в разряд приватных. Удалены некоторые методы из классов np.ndarray и np.generic. Создано новое пространство имен numpy.stringsf со строковыми операциями.

Среди новых возможностей стоит отметить поддержку типов float32 и longdouble во всех функциях numpy.fft, поддержку стандартного API Array в основном пространстве имен, новое пространство имен и типы для строк переменной длины. Производительность была оптимизирована с использованием библиотек Intel x86-simd-sort и Google Highway для строковых функций sort, argsort, partition и argpartition, а также ускорены операции с фиксированными строками в модуле numpy.char. Добавлен новый API opt_func_info для трассировки и интроспекции.

+1
0
+1
1
+1
0
+1
0
+1
1

Ответить

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