需要使用float,但序列不能成倍增加

时间:2017-06-20 16:09:10

标签: python

我收到错误'TypeError:无法在以下行中将序列乘以'int'类型的非int:

coef[i + 1] = coef[i + 1] + learning_rate * error * t_pred * (1 - t_pred) * row[i]

我无法将learning_rate更改为int。它必须是一个浮点数。考虑到这个限制,是否有解决此错误的方法?

2 个答案:

答案 0 :(得分:0)

我猜测你的row[i]是你可以与浮点数相乘的序列,所以在乘法之前将所有内容都变为整数:

coef[i + 1] += int(learning_rate * error * t_pred * (1 - t_pred)) * row[i]

答案 1 :(得分:0)

你的一个变量是非int类型,当你对它们进行数学运算时,会抛出错误。

请参阅此处的示例,使用字符串1乘以1.0:

>>> "1" * 1.0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'float'

在进行数学运算之前,必须将所有数字字符串转换为整数或浮点数。您可以使用type()检查变量类型,例如:type(learning_rate)