Bagaimana untuk Menukar Tatasusunan Indeks kepada Tatasusunan Berekod Satu-Hot dalam NumPy?

Barbara Streisand
Lepaskan: 2024-11-01 00:09:28
asal
538 orang telah melayarinya

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

Menukar Tatasusunan Indeks kepada Tatasusunan Berekod Satu-Hot dalam NumPy

Selalunya, ia menjadi perlu untuk mengubah tatasusunan indeks 1D ke dalam tatasusunan 2D di mana setiap baris mewakili pengekodan satu-panas indeks yang sepadan dalam tatasusunan asal.

Contoh:

Mari kita mempunyai tatasusunan 1D indeks ' a':

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

Kami menyasarkan untuk mencipta tatasusunan 2D 'b' di mana setiap baris adalah pengekodan satu panas bagi indeks yang sepadan dalam 'a':

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

Penyelesaian:

Untuk mencapai transformasi ini, kita boleh menggunakan langkah berikut:

  1. Penciptaan Tatasusunan Sifar:
    Buat sifar tatasusunan 'b' dengan lajur yang mencukupi untuk menampung nilai indeks maksimum dalam 'a', tambah satu ('a.max() 1').
<code class="python">b = np.zeros((a.size, a.max() + 1))</code>
Salin selepas log masuk
  1. Satu -Pengekodan Panas:
    Untuk setiap baris 'i' dalam tatasusunan, tetapkan lajur 'a[i]' kepada 1. Langkah ini mengubah setiap indeks dalam 'a' menjadi baris berkod satu panas dalam 'b'.
<code class="python">b[np.arange(a.size), a] = 1</code>
Salin selepas log masuk

Output:

Melaksanakan kod ini menghasilkan tatasusunan terkod satu-panas yang dikehendaki 'b':

<code class="python">[[ 0.  1.  0.  0.]
 [ 1.  0.  0.  0.]
 [ 0.  0.  0.  1.]]</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menukar Tatasusunan Indeks kepada Tatasusunan Berekod Satu-Hot dalam NumPy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!