修正方法: 「numpy.float64」オブジェクトは要素の割り当てをサポートしていません
Python の使用時に発生する可能性のある一般的なエラーは次のとおりです。
TypeError: 'numpy.float64' object does not support item assignment
このエラーは通常、角括弧を使用してfloat64型の NumPy 変数に新しい値を割り当てようとしたときに発生します。
次の例は、このエラーを実際に解決する方法を示しています。
エラーを再現する方法
値15.22の NumPy 変数を作成し、括弧を使用して新しい値13.7を与えようとするとします。
import numpy as np #define some float value one_float = np. float64 (15.22) #attempt to modify float value to be 13.7 one_float[0] = 13.7 TypeError: 'numpy.float64' object does not support item assignment
オブジェクト ‘numpy.float64’ が要素の割り当てをサポートしていないというエラーが表示されます。
one_floatはスカラーですが、角括弧を使用してインデックス位置 0 の値を変更できる配列として処理しようとしたため、このエラーが発生しました。
one_float は配列ではないため、その値を変更するときに角かっこを使用することはできません。
エラーを修正する方法
このエラーを解決する方法は、float に新しい値を割り当てるときに角括弧を使用しないことです。
#modify float value to be 13.7
one_float = 13.7
#view float
print (one_float)
13.7
括弧を使用しなかったため、値を15.22から13.7に変更することができました。
配列を操作している限り、角括弧を使用して特定のインデックス位置の値を変更できることに注意してください。
たとえば、次のコードは、括弧表記を使用して NumPy 配列の最初の要素を15.22から13.7に変更する方法を示しています。
import numpy as np
#define a NumPy array of floats
many_floats = np. float64 ([15.22, 34.2, 15.4, 13.2, 33.4])
#modify float value in first index position of array to be 13.7
many_floats[0] = 13.7
#view updated array
print (many_floats)
[13.7 34.2 15.4 13.2 33.4]
今回も NumPy 配列を使用しているためエラーは発生しません。そのため、括弧を使用するのは理にかなっています。
追加リソース
次のチュートリアルでは、Python の他の一般的なエラーを修正する方法を説明します。
Python で修正する方法: オブジェクト ‘numpy.ndarray’ は呼び出し可能ではありません
修正方法: TypeError: オブジェクト ‘numpy.float64’ は呼び出し可能ではありません
修正方法: 型エラー: 文字列またはバイト オブジェクトが必要です