NoteRun

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で削除された名前がまとめて置き換わります。タップするまで何も変わらず、変更はすべて事前に確認でき、「取り消す」で元に戻せます。

App Storeからダウンロード

ほかのエラー