Maison > développement back-end > Tutoriel Python > Comment convertir un tableau d'index en un tableau codé à chaud dans NumPy ?

Comment convertir un tableau d'index en un tableau codé à chaud dans NumPy ?

Barbara Streisand
Libérer: 2024-11-01 00:09:28
original
690 Les gens l'ont consulté

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

Conversion d'un tableau d'indices en un tableau codé One-Hot dans NumPy

Souvent, il devient nécessaire de transformer un tableau 1D d'indices dans un tableau 2D où chaque ligne représente un encodage à chaud de l'index correspondant dans le tableau d'origine.

Exemple :

Ayons un tableau 1D d'indices ' a' :

<code class="python">a = np.array([1, 0, 3])</code>
Copier après la connexion

Nous visons à créer un tableau 2D 'b' où chaque ligne est un encodage à chaud de l'index correspondant dans 'a' :

<code class="python">b = np.array([[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 0, 1]])</code>
Copier après la connexion

Solution :

Pour réaliser cette transformation, nous pouvons utiliser les étapes suivantes :

  1. Création d'un tableau mis à zéro :
    Créer un tableau mis à zéro :
Créer un tableau 'b' avec suffisamment de colonnes pour accueillir la valeur d'index maximale dans 'a', plus un ('a.max() 1').
<code class="python">b = np.zeros((a.size, a.max() + 1))</code>
Copier après la connexion

  1. Un -Hot Encoding :
Pour chaque ligne 'i' du tableau, définissez la 'a[i]'ième colonne sur 1. Cette étape transforme chaque index dans 'a' en une ligne codée à chaud dans 'b'.
<code class="python">b[np.arange(a.size), a] = 1</code>
Copier après la connexion

Sortie :

<code class="python">[[ 0.  1.  0.  0.]
 [ 1.  0.  0.  0.]
 [ 0.  0.  0.  1.]]</code>
Copier après la connexion
L'exécution de ce code produit le tableau codé à chaud souhaité 'b' :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal