Ids = [ i for i, v in heapq.nlargest(RN, enumerate(score_real_test), key=operator.itemgetter(1))]
這將給出列表score_real_test中RN最大值的索引。是否有可能獲得「最大值列表score_real_test並且滿足布爾條件COND」的RN最大值的索引?獲得列表中的N個最大值的索引,使得這些值遵守給定條件
應包含RN索引。
編輯:現在我用這個解決方案,但它是不是最好的一個:
score_real_test_2 = np.sort([ v for i,v in enumerate(score_real_test) if pred_real_test[i] == NOVEL ])
score_real_test_2 = score_real_test_2[len(score_real_test_2)-RN:]
large_dist_ids = [i for i in range(len(score_real_test)) if score_real_test[i] in score_real_test_2]
可以嗎明確提出你的疑問? – 2013-04-05 18:43:54
@AswinMurugesh你在我的問題中不瞭解什麼?我想爲我選擇的N個大值添加一個條件,例如,如果indexe滿足A_Given_List [i] == true,那麼如果它位於N個最大值中,我會考慮它,否則,我不會考慮我。這是清楚的嗎? – shn 2013-04-05 18:47:45
通常,您可以在列表理解中添加if語句。例如:'[我爲我在我的列表]' - >'[我爲我在我的列表如果(我%2)]''。這是你在找什麼? – jedwards 2013-04-05 19:00:19