我有一个 numpy 数组,我试图将它乘以一个标量,但它不断抛出错误:

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

我的代码是:
Flux140 = ['0.958900', 'null', '0.534400']
n = Flux140*3

最佳答案

问题是你的数组的 dtype 是一个字符串,而 numpy 不知道你想如何将一个字符串乘以一个整数。如果它是一个列表,您将重复该列表 3 次,但数组反而会给您一个错误。

尝试使用 dtype 方法将数组的 astype 从字符串转换为浮点数。在您的情况下,您的 'null' 值会遇到问题,因此您必须首先将 'null' 转换为其他内容:

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

然后你可以使类型 float :
Flux140 = Flux140.astype(float)

如果你希望你的 'null' 是别的东西,你可以先改变它:
Flux140[Flux140 == -1] = np.nan

现在你可以乘法:
tripled = Flux140 * 3

关于python - 如何将 numpy 数组乘以标量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17729297/

10-12 00:02