在得到概率分布的list之後,想要得到 top k個概率值及其索引,因為索引對應著label id。
import numpy as np
p = [0.07, 0.2, 0.1, 0.03, 0.1, 0.5]
topk = 2
print("方法1:")
index_list = sorted(range(len(p)), key=lambda i: p[i])[-topk:] # sorted(range(len(p)), key=lambda i: p[i], reverse=true)[:2]
pro_list = np.array(p)[index_list]
print("indexs={}".format(index_list))
print("pro values={}".format(pro_list))
import numpy as np
ind = np.argpartition(p, -topk)[-topk:] # 返回結果是 array
print("方法2:")
print("indexs={}".format(ind.tolist()))
# preds_ind = p[ind]
# print(preds_ind)
# 方法3:
print("方法3:")
inds = np.argsort(p)[-topk:]
print("indexs={}".format(inds.tolist()))
執行結果:
方法1:
indexs=[1, 5]
pro values=[0.2 0.5]
方法2:
indexs=[1, 5]
方法3:
indexs=[1, 5]
python獲取list下標及其值
當在python中遍歷乙個序列時,我們通常採用如下的方法 for item in sequence process item 如果要取到某個item的位置,可以這樣寫 for index in range len sequence process sequence index 另乙個比較好的方式是使...
python中改變list中list值的問題
l s 0,0,0 for i in range 3 l 1 1 1 print l 如上 定義乙個空list,新增元素也為list型別。本意是想改變list l中乙個值,使其結果為 0,0,0 0,1,0 0,0,0 但執行的結構下圖所示,將list l中的所有元素都改變了。為找到原因,檢視pyt...
從列舉值獲取對應的文字描述
有時列舉值在顯示時,需要顯示列舉值對應的文字串。一種方案是在呼叫的地方使用switch或者if來判斷列舉值,然後賦給不同的文字串,但這樣一來,如果有較多的地方都用到的時候就會比較麻煩。當然有人說,這種情況下,可以針對這種列舉值封裝乙個方法,然後來呼叫。那如果有多個列舉型別都有這樣的需求呢?有沒有什麼...