🖥
Вышел NumPy 2.0.0. Самые значительные обновления с 2006 года для Python разработчиков
Вышла новая версия Python-библиотеки для научных вычислений
NumPy 2.0.0, предназначенная для работы с многомерными массивами и матрицами.
Она включает обширную коллекцию функций, реализующих различные алгоритмы, связанные с использованием матриц. NumPy считается одной из самых популярных библиотек для научных расчетов. Код библиотеки написан на Python с применением оптимизаций на языке C и распространяется под лицензией 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. Также изменены целочисленные типы по умолчанию на платформе 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 со строковыми операциями.
https://uproger.com/vyshel-numpy-2-0-0-samye-znachitelnye-obnovleniya-s-2006-goda-dlya-python-razrabotchikov/@machinelearning_ru