classes = ['A', 'B', 'C']
my_data = [
[2, 1, 3],
[1, 1, 2],
[3, 3, 3],
[3, 1, 3],
[3, 1, 3],
[3, 3, 2]
]
這里,A = 1,B=2,C=3。
假設,我想先在矩陣的每一行中找到最大值my_data,然后我想將它們轉換為從classes.
我可以在不使用回圈的情況下在 python 中做到這一點嗎?
以下源代碼對我不起作用:
def prediction_to_name(pred):
return classes[np.argmax(pred)]
uj5u.com熱心網友回復:
您需要迭代您的資料,除非重復剪切和粘貼result.append(classes[np.argmax(my_data[n])])每個n in 0:len(my_data)只是手動輸入回圈的資料。
import numpy as np
classes = ['A', 'B', 'C']
my_data = [[2, 1, 3],
[1, 1, 2],
[3, 3, 3],
[3, 1, 3],
[3, 1, 3],
[3, 3, 2]]
classifiedData = [classes[np.argmax(row)] for row in my_data]
print(classifiedData) # ['C', 'C', 'A', 'A', 'A', 'A']
uj5u.com熱心網友回復:
map_classes = {k: idx for k, idx in enumerate(classes, start=1)}
>>> [map_classes[max(row)] for row in my_data]
['C', 'B', 'C', 'C', 'C', 'C']
uj5u.com熱心網友回復:
這個怎么樣?
print(np.array(classes)[np.max(my_data,axis=1)-1])
結果:
['C' 'B' 'C' 'C' 'C' 'C']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/432393.html
下一篇:需要從csv中創建元組作為字典鍵,格式為(year,state_po,Candidate)=Candidatevoteswithoutpandas
