6月17日、NumPyは新しいメジャーリリースである「NumPy 2.0.0」を発表した。これは2006年以来初めての大規模なバージョンアップである。
このリリースには、多くの新機能と共に、PythonおよびC APIへの大幅な変更が含まれている。さらに、ABIの変更、型プロモーションルールの変更、1.26.xでは非推奨警告が表示されていなかったAPIの変更など、通常のマイナーリリースでは実施できない破壊的な変更も含まれている。
以下に、新機能の概要をお伝えする。
* np.add
の対応データ型が拡張
np.add
がunicode
およびbytes
データ型で動作するように拡張された。
>>> np.add(np.array(['a', 'b'], dtype='<U1'), np.array(['c', 'd'], dtype='<U1'))
array(['ac', 'bd'], dtype='<U1')
新しいbitwise_count
関数
この新しい関数は数値内の1ビットの数をカウントする。
>>> a = np.array([2**i - 1 for i in range(16)])
>>> np.bitwise_count(a)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
dtype=uint8)
macOS Accelerateサポート、ILP64を含む
macOS 13.3で更新されたAccelerate BLAS/LAPACKライブラリのサポートが追加され、64ビット整数サポートを含む。これにより、一般的な線形代数演算のパフォーマンスが最大10倍向上する。
quantileおよびpercentile関数にweightsオプションの追加
quantile
, percentile
, nanquantile
, nanpercentile
関数にweights
キーワードが追加された。method="inverted_cdf"
のみがweightsをサポートする。
CPU最適化トラッキングの向上
新しいトレーサーメカニズムが追加され、NumPyライブラリ内の各最適化関数の有効化されたターゲットを追跡できるようになった。
f2py
の新しいMesonバックエンド
f2py
のコンパイルモードで--backend meson
オプションが利用可能になり、Python 3.12以上ではデフォルトとなる。
bind(c)
サポートの追加
関数およびサブルーチンにbind(c)
アノテーションを追加できるようになった。
複数のテスト関数にstrictオプションの追加
assert_allclose
, assert_equal
, assert_array_less
関数にstrict
キーワードが追加され、スカラーのブロードキャスト動作を無効にし、入力配列のデータ型が一致することを保証する。
np.core.umath.find
およびnp.core.umath.rfind
UFuncsの追加
find
およびrfind
UFuncsが追加され、ユニコードまたはバイト文字列上で動作する。
新しいlong
およびulong
データ型の追加
NumPyの整数型に対応するnumpy.long
およびnumpy.ulong
が追加された。
新しいisdtype
関数の追加
NumPyのデータ型を分類するための標準的な方法としてnumpy.isdtype
関数が追加された。
新しいastype
関数の追加
numpy.astype
関数が追加され、標準のArray APIに準拠する代替手段として利用できるようになった。
詳細はNumPy 2.0.0 Release Notesを参照していただきたい。