新的 Python 用户准备好编写我的第一个简单代码(希望如此!)。我的目标是使用某种最适合的功能,Python 必须根据车辆的品牌和数量来找出这些数据最接近的位置。
import numpy as np
from scipy.optimize import minimize
这是我拥有的三个城市:
cities = ['Washington DC', 'Seattle', 'Miami']
这些是车辆的品牌:
car_inputs = ['Ford', 'Chevy', 'Dodge']
以下是我想在代码中运行的值:
input_values = {'Ford': 124,
'Chevy': 34,
'Dodge': 77}
这是存储我的数据的数据库,我试图从中找到最适合我的输入的数据。请注意,我的输入与华盛顿特区的输入相同:
dealer_database = {'Washington DC': {'Ford': 124, 'Chevy': 34, 'Dodge': 77},
'Seattle': {'Ford': 500, 'Chevy': 80, 'Dodge': 58},
'Miami': {'Ford': 254, 'Chevy': 105, 'Dodge': 30}}
我想我需要使用 Ax = b 来解决 x 来解决这个问题。根据我在网上阅读的内容,我需要 x 用于卡方计算。以下是我从另一篇关于 SO 的帖子中找到的内容:
L = len(b)
fun = lambda x: np.linalg.norm(np.dot(A,x)-b)
x1 = np.linalg.solve(A,b)
sol = minimize(fun, x1, method='SLSQP', constraints={'type': 'ineq', 'fun': lambda x: x})
sol = minimize(fun, np.zeros(l), method='L-BFGS-B', bounds=[(0.,None) for x in xrange(l)])
solution = sol['x']
由于我的输入与华盛顿特区相同,我希望我的解决方案为:
solution = ([ 1.0, 0., 0.]) #first number represents Washington DC.
我相信这些是我在网上学习/研究的正确步骤,但我不知道如何发挥作用。任何帮助将不胜感激!