Выпуск 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. Зменены цэлалікавыя тыпы, якія прымяняюцца па змаўчанні на платформе 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