數字類別生成onehot

2022-08-20 22:57:07 字數 737 閱讀 2255

對應行的列#原始標籤

my_label = np.array([3,4,2,4,6,1])

#類別數量

num_class = 6

#樣本數量

num = my_label.shape[0]

#生成onehot標籤

原理是通過numpy的陣列索引,注意不能用label[:,my_label-1]的方式,因為使用切片操作,之後會操作某一列,而不是對應行的列。

比如

a = np.random.randint(1,10,(2,3))

print(a)

print("*********")

print(a[[0,1],[2,1]])

print("*********")

print(a[:,[2,1]])

結果為

可以看到使用切片之後會操作某一列,而不是對應行的列

生成one hot的方法

def encode onehot labels classes set labels classes dict labels onehot np.array list map classes dict.get,labels dtype np.int32 return labels onehot n...

類別變數轉換成one hot標籤的方法

one hot 類別變數中n個不同類別轉換為n個變數 dummy variable 在某一設定的參考準則下,對n個不同的類別,轉換為n 1個變數 pandas 將標籤轉化為獨熱編碼 pd.get dummies df nmf cluster head 20 tensorflow 將標籤轉化為獨熱編碼...

Python 生成one hot標籤和恢復

首先生成乙個主對角全為1的其餘全為0的矩陣,比如有n個分類就是n n,效果如下 隨後根據標籤列表 或者numpy陣列 選取合適的行,比如標籤是 9,1,0,0 那麼就會選擇上圖矩陣中對應的9 1 0 0行,得到one hot標籤,如果不熟悉numpy陣列的列表切片的 就是說numpy array s...