Доступен NumPy 1.16, последний релиз с поддержкой Python 2

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

NumPy 1.16 объявлен как последний выпуск, в котором сохраняется поддержка Python 2.7. Новые возможности отныне будут добавляться только в ветку для Python 3, а поддержка Python 2 ограничится исправлением ошибок. Из веток Python 3 обеспечена поддержка 3.5-3.7, поддержка ветки Python 3.4 прекращена. Сопровождение NumPy 1.16 будет обеспечено до 31 декабря 2019 года, после чего возможность дальнейшей поддержки будет зависеть от активности лиц, заинтересованных в продолжении использования Python 2. Напомним, что поддержка Python 2.7 будет прекращена сообществом разработчиков языка Python в 2020 году.

В новой версии проведён рефакторинг кодовой базы, переработана организация кода и улучшена переносимость между разными платформами. Добавлена экспериментальная поддержка переопределения функций numpy производными проектами. Функция matmul переведена в разряд универсальных (ufunc) и может быть переопределена при помощи выражения "array_ufunc". Улучшена поддержка архитектур ARM, POWER и SPARC, а также платформ AIX и PyPy. Улучшена переносимость с ctypes. Расширена поддержка PEP 3118(интерфейс совместного доступа к буферам).

Дополнение: В NumPy выявлена уязвимость (CVE-2019-6446), приводящая к выполнению удалённого кода при обработке специально оформленного сериализированного объекта. Уязвимость проявляется в том числе в выпуске 1.16.0 и присутствует в коде начиная с версии 1.10 (апрель 2015), в которой был добавлен вызов "np.load(allow_pickle=True)". Проблема связана с небезопасным использованием модуля "pickle".

Источник: OpenNET