关于sum函数的Python弃用警告

nse*_*ner 5 python numpy sum generator-expression deprecation-warning

我编写了算法,直到2周前它都可以正常工作。我收到此警告,但我不明白为什么得到它。警告是:

“ C:/Users/Administrator/Documents/Python/sezg_1_diffne.py:147:弃用警告:不建议调用np.sum(generator),将来会给出不同的结果。请使用np.sum(np.from_iter(generator) ))或内置的python sum。obje_1 = detmas.objVal + sum(hopen [i] * fixedCost for i in Fset)“

我的代码的一部分是:

obje_1=detmas.objVal+sum(hopen[i]*fixedCost for i in Fset)
Run Code Online (Sandbox Code Playgroud)

我尝试了一些在互联网上找到的东西,例如删除numpy并重新安装它。但是这些解决方案不适用于我的代码。我该如何解决?提前致谢...

jpp*_*jpp 5

不要sum从导入numpy。在代码中查找from numpy import sumfrom numpy import *删除这些行。否则,您将覆盖内置的sumnp.sum内置sum是具有不同要求的独立功能。

该警告表明,虽然您的代码现在可以运行,但将来可能无法运行。请注意,您实际上确实在隐式使用生成器。这些行是等效的:

sum(hopen[i]*fixedCost for i in Fset)
sum((hopen[i]*fixedCost for i in Fset))
Run Code Online (Sandbox Code Playgroud)

在Python中,不需要多余的括号即可明确表示生成器。当您避免sum从NumPy库导入时,错误将消失。