如何将numpy数组乘以标量

时间:2013-07-18 16:38:59

标签: python arrays numpy scalar

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

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

我的代码是:

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

2 个答案:

答案 0 :(得分:9)

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

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

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

然后你可以使类型为float:

Flux140 = Flux140.astype(float)

如果您希望'null'成为其他内容,可以先改变它:

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

现在你可以成倍增加:

tripled = Flux140 * 3

答案 1 :(得分:1)

这是一个字符串数组。你想要一组数字。在制作阵列之前用float或其他东西解析输入。 (如何处理这些'null'取决于您的申请。)