两周前我就把它编码好了。我得到了这个警告,但我不明白我为什么得到它。警告是:
"C:/Users/Administrator/Documents/Python/sezg_1_diffne.py:147: DeprecationWarning: Calling np.sum(generator) is deprecated, and in the future will give a different result. Use np.sum(np.from_iter(generator)) or the python sum builtin instead. obje_1=detmas.objVal+sum(hopen[i]*fixedCost for i in Fset)"
我的代码的一部分是:
obje_1=detmas.objVal+sum(hopen[i]*fixedCost for i in Fset)
我尝试了一些我在互联网上找到的东西,比如删除numpy并重新安装它。然而,这些解决方案并不适用于我的代码。我怎么解决?提前谢谢。。。在
我找到了一个替代jpp的解决方案。如果希望保留
from numpy import *
,可以在导入numpy之前将内置对象分配给另一个变量,如here所示。在在您的特殊情况下,您有两种选择:
导入内置模块:
import builtins
用于Python3,或{builtins.sum(hopen[i]*fixedCost for i in Fset)
或{在导入numpy之前,将内置和分配给其他变量:
bltin_sum = sum
from numpy import *
bltin_sum(hopen[i]*fixedCost for i in Fset)
我已经检查了numpy数组的内置sum的行为是否与预期的一样。在
不要从},然后删除这些行。否则,您将重写内置的} 和{a2}是独立的函数,有不同的需求。在
numpy
导入sum
。在代码中查找from numpy import sum
或{sum
。^{警告表明,虽然您的代码现在可以工作,但将来可能无法工作。请注意,实际上您确实隐式使用了生成器。这些线是等效的:
在Python中,显式地表示生成器不需要额外的括号。当您避免从NumPy库导入
sum
时,错误将消失。在您只需使用
sum
而不是np.sum
。我也遇到了同样的问题。当我切换到内置的总和后,警告消失了。在你不必做任何特殊的导入或分配任何东西。在
相关问题 更多 >
编程相关推荐