修正方法: サイズ 1 の配列のみを python スカラーに変換できます。
Python の使用時に発生する可能性のあるエラーは次のとおりです。
TypeError : only size-1 arrays can be converted to Python scalars
このエラーは、 np.int()を使用して浮動小数点値の NumPy 配列を整数値の配列に変換しようとしたときに最もよく発生します。
ただし、この関数は値の配列ではなく単一の値のみを受け入れます。
代わりに、 x.astype(int)を使用して、浮動小数点値の NumPy 配列を整数値の配列に変換する必要があります。この関数は配列を受け入れることができるためです。
次の例は、このエラーを実際に修正する方法を示しています。
エラーを再現する方法
次の float 値の NumPy 配列を作成するとします。
import numpy as np #create NumPy array of float values x = np. array ([3, 4.5, 6, 7.7, 9.2, 10, 12, 14.1, 15])
ここで、この浮動小数点値の配列を整数値の配列に変換しようとするとします。
#attempt to convert array to integer values
n.p. int (x)
TypeError : only size-1 arrays can be converted to Python scalars
np.int()関数は値の配列ではなく単一の値のみを受け入れるため、 TypeErrorが返されます。
エラーを修正する方法
浮動小数点値の NumPy 配列を整数値に変換するには、次のコードを使用できます。
#convert array of float values to integer values
x. astype (int)
array([ 3, 4, 6, 7, 9, 10, 12, 14, 15])
astype()関数は値の配列を処理できるため、値の配列は整数に変換されており、エラーは発生しないことに注意してください。
注: astype()関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、Python の他の一般的なエラーを修正する方法を説明します。
パンダの KeyError を修正する方法
修正方法: ValueError: float NaN を int に変換できません
修正方法: ValueError: オペランドをシェイプでブロードキャストできませんでした