3

numpy 配列があり、それをスカラーで乗算しようとしていますが、エラーがスローされ続けます。

TypeError: unsupported operand type(s) for *: 'numpy.ndarray' and 'int'

私のコードは次のとおりです。

Flux140 = ['0.958900', 'null', '0.534400']
n = Flux140*3
4

2 に答える 2

9

問題は、配列dtypeが文字列であり、numpy が文字列を整数で乗算する方法を認識していないことです。リストの場合、リストを 3 回繰り返すことになりますが、代わりに配列を使用するとエラーが発生します。

メソッドdtypeを使用して、配列を文字列から浮動小数点数に変換してみてください。astypeあなたの場合、値に問題があるため、最初に別のものに'null'変換する必要があります。'null'

Flux140[Flux140 == 'null'] = '-1'

次に、タイプをフロートにすることができます:

Flux140 = Flux140.astype(float)

あなた'null'が何か他のものになりたい場合は、最初にそれを変更することができます:

Flux140[Flux140 == -1] = np.nan

これで乗算できます:

tripled = Flux140 * 3
于 2013-07-18T16:54:46.970 に答える