首頁  >  文章  >  後端開發  >  如何在 NumPy 中對索引數組進行 One-Hot 編碼?

如何在 NumPy 中對索引數組進行 One-Hot 編碼?

Linda Hamilton
Linda Hamilton原創
2024-10-30 22:50:03647瀏覽

How to One-Hot Encode Index Arrays in NumPy?

NumPy 中索引數組的One-Hot 編碼

給定一個索引數組,將其轉換為One-hot 編碼數組可以是適用於各種機器學習應用的有用技術。 One-hot 編碼將每個索引表示為一個二進位向量,其中索引對應的元素為 1,所有其他元素為 0。這種技術在處理分類資料或索引作為特徵值的情況下特別有價值。

為了在NumPy 中實作one-hot 編碼,我們遵循一個簡單的過程:

  1. 建立一個具有足夠列的零初始化數組,其中列數等於索引的最大值數組加一。
  2. 對於結果陣列中的每一行,將與該行索引對應的欄位設為 1。

考慮提供的範例:

<code class="python">a = np.array([1, 0, 3])
b = np.zeros((a.size, a.max() + 1))
b[np.arange(a.size), a] = 1</code>

在此範例中,索引數組a 的值範圍為0 到3,因此我們建立一個包含4 列的零填充數組b。然後,我們使用 np.arange() 函數產生 b 的行索引數組,並根據 a 中的值將對應的列設為 1。

產生的數組b 現在是一個單熱編碼的原始索引數組a 的表示:

array([[ 0.,  1.,  0.,  0.],
       [ 1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  1.]])

這個單熱編碼數組保留了索引值的分類性質,並允許在機器學習演算法中進行高效處理。

以上是如何在 NumPy 中對索引數組進行 One-Hot 編碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn