【发布时间】:2019-01-24 02:41:45
【问题描述】:
我有一本这样的字典
{0: array([-6139.66579119, -8102.82498701, -8424.43378713, -8699.96492463,
-9411.35741859]),
1: array([ -7679.11144698, -16699.49166421, -3057.05148494, -10657.0539235 ,
-3091.04936367]),
2: array([ -7316.47405724, -15367.98445067, -6660.88963907, -9634.54357714,
-6667.05832509]),
3: array([-7609.14675848, -9894.14708559, -4040.51364199, -8661.16152946,
-4363.71589143]),
4: array([-5068.85919923, -6691.36104136, -6659.66791024, -6666.66570889,
-5365.35153533]),
5: array([ -8341.96211464, -13495.42783124, -4782.52084352, -10355.98002 ,
-5424.48813488]),
6: array([ -7740.36341878, -16165.48430318, -5169.42471878, -12369.79859385,
-5807.66380805]),
7: array([-10645.12432969, -5465.30533986, -6756.65159092, -4146.34937333,
-6765.69595854]),
8: array([ -7765.04423986, -11679.3889257 , -4218.9629257 , -6565.64225892,
-4538.09199979]),
9: array([-5869.18259848, -7809.21110907, -3272.33611955, -3881.64743889,
-3275.54657818])}
我想做的是:
比较每个数组中的第一个值,本例中为-6139、-7649……并找到最大值(-5068),然后返回列表中的键4。
比较每个数组中的第二个值,-8102,-16699......找到最大值并返回key,追加到列表中。
我该怎么做?
我的代码是这样的:
def predict(trainingData, testData):
pred = {}
maxLabel = None
prediction=[]
maxValue = -9999999999
pred = postProb(trainingData, testData)
for key, value in pred.items():
for i in range(value.shape[0]):
for j in range(10):
if pred[j][i] > maxValue:
maxValue = pred[key][i]
maxLabel = key
prediction.append(maxLabel)
return prediction
pred 是字典。似乎第一个循环不是必需的,但我需要它来遍历字典中的元素
【问题讨论】:
-
你已经尝试了什么?
-
我试图循环 dict 和数组,但它不会工作,因为它返回 10x5 值
-
您可以编辑问题以包含您的代码吗?它会帮助我们知道什么是行不通的。
-
> 比较每个数组中的第一个值,本例中为-6139、-7649……并找到最大值(-5068),然后返回列表中的键9 .你的意思是 4 个?
-
对不起,是的。我之前打错了。
标签: python numpy dictionary