Випуск Python-бібліотеки для наукових обчислень NumPy 2.0.0

Доступний реліз Python-бібліотеки для наукових обчислень NumPy 2.0.0, орієнтованої на роботу з багатовимірними масивами та матрицями, а також велику колекцію функцій з реалізацією різних алгоритмів, пов'язаних з використанням матриць. NumPy є однією з найбільш популярних бібліотек, що застосовуються для наукових розрахунків. Код проекту написаний мовою Python із застосуванням оптимізації мовою Сі та поширюється під ліцензією BSD.

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. Изменены целочисленные типы, применяемые по умолчанию на платфoрме Windows — на 64-разрядных системах теперь применяется 64-разрядный целый тип, а на 32-разрядных — 32-разрядный (ранее использовался аналог Си-типа long, а теперь эквивалент 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 для трасування та інтроспектування.

Джерело: opennet.ru

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster