繁体   English   中英

如何获得 scipy.optimize.linprog 的结果数组?

[英]How to get the result array of scipy.optimize.linprog?

我正在使用scipy.optimize.linprog来解决网络流量问题,我得到了结果。 但我不知道如何获得在结果中显示为 x:array 的结果数组。 我必须修改这个数组以使其更易于阅读。

res = linprog(c=C, A_eq=A, b_eq=B)
print(res)

这是结果:

    fun: 67538.0
 message: 'Optimization terminated successfully.'
     nit: 36
   slack: array([], dtype=float64)
  status: 0
 success: True
       x: array([    0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,  5415.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
           0.,     0.,     0.,     0.,     0.,  7732.,     0.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,     0.,  4045.,
        3167.,     0.,  2420.,     0.,     0.,     0.,     0.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,  3257.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
           0.,     0.,     0.,     0.,     0., 12230.,     0.,     0.,
        1574.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
           0., 13407.,  4708.,     0.,     0.,     0.,     0.,     0.,
           0.,     0.,     0.,     0.,  4601.,     0.,  4982.,     0.,
           0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
           0.])

所以,我想知道如何获取 x:array。 我必须在这个数组中使用非零数字。

根据scipy.optimize.linprog文档,此 function 返回OptimizeResult ,其中x是属性之一(实例变量)。

您可以使用res.x表示法直接访问它作为 Python 中的任何其他 object 属性。

请注意,这里的x是 NumPy 数组,因此特别是如果您的数组要大而不是转换为 Python 本机列表并手动删除零,您可能需要使用nonzero_x = numpy.trim_zeros(res.x)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM