NumPy 2.0.0の主要な変更点
皆さんもお世話になっているであろう科学計算ライブラリNumPyが、2006年以降初めてのメジャーアップデートを発表しました。そこで、変更点をざっくりとまとめてみました。以下は変更点の一部であり、それ以外については実際のドキュメントを参照してください。
免責事項:この記事は、NumPy 2.0.0の変更点について個人的な見解を述べたものであり、NumPyの開発チームや関係者の公式な見解を代表するものではありません。変更点の影響や対応方法については、必ず公式のリリースノートと移行ガイドを参照してください。また、この記事には不正確な情報が含まれている可能性があります。記事の内容を実際のプロジェクトに適用する前に、必ず公式ドキュメントで情報を確認してください。
概要
- 2006年以来の最初のメジャーリリース
- 破壊的な変更あり
- 多くの新機能とPython/C APIの変更が含まれる
- ABIの変更、型昇格ルールの変更、非推奨の警告のないAPI変更などの重大な変更を含む
- Python APIとC APIから非推奨の関数、エイリアス、マクロなどが削除された
- 将来のNumPyの改善とメンテナンスを容易にするための内部変更が多数含まれる
新機能
- 可変長文字列dtype (StringDType)
- numpy.strings名前空間、文字列操作のための高速なユニバーサル関数(ufuncs)
- numpy.fftでのfloat32/longdoubleサポート
- Array API標準のサポート
これらは NumPy 2.0 の新機能のほんの一部です。リリースノートには他にも多くの新機能、改善、変更が記載されています。
パフォーマンスの改善
- ソート関数の高速化
- macOSでの線形代数の高速化
- 固定長文字列操作の高速化
- 新しいトレース/イントロスペクションAPI
Python APIの改善
- パブリックAPIとプライベートAPIの明確な分離
- 非推奨の関数/エイリアスの削除
- 標準的なdtype名と新しい
isdtype
関数
C APIの改善
- カスタムdtype作成のための新しいパブリックAPI
- 古い関数/マクロの削除
- 新しい初期化関数
動作の改善
- 型昇格の動作の改善 (NEP 50)
- 64ビットWindowsでのデフォルト整数型の変更 (64ビット整数型に)
- 最大配列次元数の変更 (32 → 64)
ドキュメントの改善
- リファレンスガイドのナビゲーションの改善
- モジュール構造のドキュメント追加
- ビルドドキュメントの書き直し
下位互換性の問題
- Python/C APIの重大な変更
- NumPy ABIの変更 (1.xx用バイナリは2.0で動作しない)
サポートPythonバージョン
- 3.9〜3.12
以上が、NumPy 2.0.0の主要な変更点のまとめです。詳細については、公式のリリースノートと移行ガイドを参照してください。