AttributeError: module 'numpy' has no attribute 'float'
Pythonのエラー · NumPy 1.24以降
np.floatは、Python組み込みのfloatの別名にすぎませんでした。NumPyは1.20で非推奨にし、1.24(2022年12月)でnp.int、np.object、np.str、np.complexとともに削除しました。エラーメッセージの続きに、代わりに使う名前が書かれています。
原因
これらの名前はPythonの組み込み型を指しているだけで、np.float64のようなNumPy独自の型と紛らわしいものでした。2023年より前に書かれたコードでは今もよく使われています。NumPy 2.0(2024年6月)ではさらに、np.NaN、np.Inf、np.float_、np.productなどが削除されました。
直し方
組み込みの名前を使います。コードの動作は以前とまったく同じです。
修正前
values = np.array(raw, dtype=np.float)
count = np.int(values.sum())
修正後
values = np.array(raw, dtype=float)
count = int(values.sum())
NumPy独自の型が必要ならnp.float64やnp.int64と書きます。NumPy 2.0で削除された名前は、np.NaN → np.nan、np.float_ → np.float64、np.product → np.prodです。
NoteRunでは
NoteRunは、実行する前にノートブックをチェックし、NumPyをどんな名前(npなど)でインポートしていても、これらの名前を見つけます。「すべて修正」をタップすると、NumPy 1.24と2.0で削除された名前がまとめて置き換わります。タップするまで何も変わらず、変更はすべて事前に確認でき、「取り消す」で元に戻せます。