Traceback most recent call last File CProgramDataAnaconda3libsite-packagesscipyoptimize_linprog_utilpy line 289 in _clean_inputs A_ub = _format_A_constraintsA_ub n_x sparse_lhs=sparse_lhs File CP
这个错误是由于linprog函数中的A_ub参数传入的不是一个二维的数值数组导致的。要解决这个问题,需要确保A_ub是一个二维的数值数组。
首先,检查A_ub的数据类型是否正确。如果A_ub是一个列表或其他数据类型,需要将其转换为numpy数组。可以使用numpy.array()函数来完成这个转换。
其次,检查A_ub的维度是否正确。A_ub必须是一个二维数组,其中每一行表示一个约束条件。如果A_ub的维度不正确,可以使用numpy.reshape()函数来改变其维度。
最后,确保A_ub中的元素都是数值类型。如果A_ub中包含非数值类型的元素,需要将其转换为数值类型。可以使用numpy.astype()函数来完成这个转换。
根据报错信息,可能的解决方法如下:
import numpy as np
from scipy.optimize import linprog
# 将A_ub转换为numpy数组
A_ub = np.array(A_ub)
# 改变A_ub的维度
A_ub = np.reshape(A_ub, (n_ub, n))
# 将A_ub中的元素转换为数值类型
A_ub = A_ub.astype(float)
# 调用linprog函数
res = linprog(c, A_ub=A_ub, b_ub=b_ub, A_eq=A_eq, b_eq=b_eq, bounds=[(2.5, None)] * n)
根据具体情况,可能需要对以上代码进行适当的修改。
原文地址: http://www.cveoy.top/t/topic/i1Sy 著作权归作者所有。请勿转载和采集!