科学計算用の Python ライブラリ NumPy 2.0.0 のリリースが利用可能になりました。これは、多次元配列と行列の操作に重点を置き、行列の使用に関連するさまざまなアルゴリズムを実装した大規模な関数コレクションも提供します。 NumPy は、科学計算に使用される最も人気のあるライブラリの XNUMX つです。 プロジェクト コードは、C の最適化を使用して Python で記述され、BSD ライセンスに基づいて配布されます。
NumPy 2.0.0 は、2006 年以来初の重要なリリースとなります。
新しいバージョンでは、新機能とパフォーマンスの最適化に加えて、下位互換性に違反する ABI、Python API、および C-API に変更が加えられています。たとえば、NumPy 1.x でコンパイルされた SciPy ライブラリを 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) を使用するように切り替えられました。カスタム dtype を作成するための新しい C API を追加しました。新しい簡素化された初期化関数 PyArray_ImportNumPyAPI および PyUFunc_ImportUFuncAPI が提案されました。
Python API は、パブリック API とプライベート API をより明確に分離し、新しいモジュール構造を導入します。約 100 の関数、モジュール、定数がメインの「np」名前空間から移動、非推奨、または削除されました。
np.lib 名前空間をクリーンアップしました。メイン名前空間内のオブジェクトの数は 10% 削減され、numpy.lib 名前空間内のオブジェクトの数は 80% 削減されました。 numpy.core 名前空間はプライベートに移動されました。 np.ndarray クラスと np.generic クラスからいくつかのメソッドを削除しました。文字列操作を使用して新しい名前空間 numpy.stringsf を作成しました。
新機能には、すべての numpy.fft 関数での float32 および longdouble 型のサポート、メイン名前空間での標準 Array API のサポート、新しい名前空間と可変長文字列の型が含まれます。文字列関数 sort、argsort、partition、argpartition に対して Intel x86-simd-sort および Google Highway ライブラリを使用してパフォーマンスの最適化が行われ、numpy.char モジュールの固定文字列を使用した操作が高速化されました。新しいAPIが追加されました
トレースとイントロスペクション用の opt_func_info。
出所: オープンネット.ru
