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
636 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!

source:php.cn
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