Вийшов реліз Python-біблотеки NumPy 2.0.0. Це перше масштабне оновлення з 2006 року

💡 Усі статті, обговорення, новини про Python — в одному місці. Приєднуйтесь до Python спільноти!

NumPy 2.0.0 є першим великим релізом з 2006 року. Він містить багато нових цікавих можливостей, а також зміни в API Python і C.

Цей великий реліз має зміни, які не могли відбутися в звичайному малому (функціональному) релізі — зокрема переривання ABI, зміни в правилах просування типів і зміни API, які, можливо, не видавали попередження про застарілість в 1.26.x.

Далі про основні моменти цього оновлення👇

Нові можливості

  • Новий тип рядка змінної довжини dtype, StringDType та новий простір імен numpy.strings з ефективними ufunc для операцій з рядками,
  • Підтримка float32 та longdouble у всіх функціях numpy.fft,
  • Підтримка стандарту API масивів у головному просторі назв numpy.

Перформанс

  • Функції сортування (sort, argsort, partition, argpartition) прискорено завдяки використанню бібліотек Intel x86-simd-sort та Google Highway.
  • Прискорено підтримку та бінарні колеса для macOS >=14, а також зменшено розмір коліс приблизно в три рази.
  • Операції з рядками фіксованої довжини numpy.char прискорено завдяки реалізації ufuncs.
  • Новий API трасування та самоаналізу opt_func_info для визначення доступних апаратно-специфічних ядер, до яких буде надіслано запит.

API Python

  • Чіткий поділ на публічний та приватний API, нова структура модулів, кожна публічна функція тепер доступна в одному місці.
  • Видалено багато нерекомендованих функцій та псевдонімів.
  • Канонічні імена dtype та нова функція самоаналізу isdtype.

C API

  • Новий загальнодоступний API C для створення власних dtypes.
  • Видалено багато застарілих функцій та макросів, а приватні внутрішні компоненти приховано.
  • Нові, простіші у використанні функції ініціалізації: PyArray_ImportNumPyAPI та PyUFunc_ImportUFuncAPI.

Покращена поведінка

  • Покращено поведінку просування типів завдяки прийняттю NEP 50.
  • Тип цілих чисел за замовчуванням у Windows тепер int64, а не int32, що відповідає поведінці на інших платформах.
  • Максимальну кількість розмірів масиву змінено з 32 до 64.

Документація

  • Навігація довідником була значно покращена, і тепер є документація по структурі модулів NumPy.
  • Повністю переписано збірку з вихідної документації.

Крім того, є багато змін у внутрішній структурі NumPy, зокрема продовження міграції коду з C на C++, що полегшить підтримку NumPy в майбутньому.

А якщо ви хочете обговорити розвиток Python з колегами, запрошуємо вас на офлайн DOU Python Meetup. Реєстрація відкрита!

👍ПодобаєтьсяСподобалось4
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі