RuntimeWarning:在 double_scalars 中遇到无效值 - 没有 numpy
RuntimeWarning: invalid value encountered in double_scalars - without numpy
我在以下代码中收到 RuntimeWarning: invalid value encountered in double_scalars
:
resident_specific_occupation_chances[iii] = (resident_specific_occupation_chances[iii]/summed)*((1-unemployment_chance)/1)
我真的不明白为什么会这样。我读了很多关于双标量警告,但对我来说没有意义。
这个错误发生在哪里?在为我的列表项分配新值时在等式的左侧?还是计算时在右边?
我这里没有使用 numpy。
我该如何防止这种情况发生? 我不想禁用警告。
我试图以简单的形式重建问题,但没有出现警告:
test_list = [0.05, 0.2, 0.1, 0.3]
summed = sum(test_list[:3])
excluded = 0.3
for i in range(len(test_list)-1):
test_list[i] = (test_list[i]/summed)*((1-excluded)/1)
print(test_list)
>>>>[0.1, 0.4, 0.2, 0.3]
错误仅用于指示分母为 0
值的除法,例如您的数据以某种方式包含不正确的值,例如您尝试取负数的平方根,或者 1/a 其中 a(这是一个数组)包含零。
RuntimeWarning: divide by zero encountered in double_scalars
我无法从上面的代码中重现相同的错误,就像你提到的那样,所以我很难调试确切的问题。
我的建议是调试您的主要代码,逐行调试并理解正在发生的数字运算。然后您将能够准确判断发生这种情况的位置。
我在以下代码中收到 RuntimeWarning: invalid value encountered in double_scalars
:
resident_specific_occupation_chances[iii] = (resident_specific_occupation_chances[iii]/summed)*((1-unemployment_chance)/1)
我真的不明白为什么会这样。我读了很多关于双标量警告,但对我来说没有意义。
这个错误发生在哪里?在为我的列表项分配新值时在等式的左侧?还是计算时在右边?
我这里没有使用 numpy。
我该如何防止这种情况发生? 我不想禁用警告。
我试图以简单的形式重建问题,但没有出现警告:
test_list = [0.05, 0.2, 0.1, 0.3]
summed = sum(test_list[:3])
excluded = 0.3
for i in range(len(test_list)-1):
test_list[i] = (test_list[i]/summed)*((1-excluded)/1)
print(test_list)
>>>>[0.1, 0.4, 0.2, 0.3]
错误仅用于指示分母为 0
值的除法,例如您的数据以某种方式包含不正确的值,例如您尝试取负数的平方根,或者 1/a 其中 a(这是一个数组)包含零。
RuntimeWarning: divide by zero encountered in double_scalars
我无法从上面的代码中重现相同的错误,就像你提到的那样,所以我很难调试确切的问题。
我的建议是调试您的主要代码,逐行调试并理解正在发生的数字运算。然后您将能够准确判断发生这种情况的位置。