首頁 >後端開發 >Python教學 >如何在 NumPy 中將索引數組轉換為 One-Hot 編碼數組?

如何在 NumPy 中將索引數組轉換為 One-Hot 編碼數組?

Barbara Streisand
Barbara Streisand原創
2024-11-01 00:09:28617瀏覽

How to Convert an Array of Indices to a One-Hot Encoded Array in NumPy?

在NumPy 中將索引數組轉換為One-Hot 編碼數組

通常,有必要轉換一維索引組到一個二維數組中,其中每一行代表原始中相應索引的one-hot編碼數組。

範例:

讓我們有一個索引'a' 的一維陣列:

<code class="python">a = np.array([1, 0, 3])</code>

我們的目標是建立一個2D 陣列' b' 其中每一行都是對應索引的one-hot 編碼'a':

<code class="python">b = np.array([[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 0, 1]])</code>

解:

要實現此轉換,我們可以利用以下步驟:

  1. 建立歸零數組:
    建立一個具有足夠列的歸零數組「b」以容納'a' 中的最大索引值,加一('a.max() 1')。
<code class="python">b = np.zeros((a.size, a.max() + 1))</code>
  1. One-Hot 編碼:
    對於數組中的每一行“i”,將“a[i]”列設定為1 。此步驟會轉換「a」中的每個索引到 'b' 中的 one-hot 編碼行。
<code class="python">b[np.arange(a.size), a] = 1</code>

輸出:

執行此程式碼會產生所需的 one-hot 編碼陣列 ' b':

<code class="python">[[ 0.  1.  0.  0.]
 [ 1.  0.  0.  0.]
 [ 0.  0.  0.  1.]]</code>

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

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