Conversion d'entier vers vecteur binaire

Résolu
victordine Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
victordine Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis depuis quelques jours en train d'essayer de convertir une liste d'entier en vecteur binaire.
La liste contient des entier de 1 à 10, et je souhaiterais les convertir en vecteur tels que :

1 = (1,0,0,0,0,0,0,0,0,0)
2 = (0,1,0,0,0,0,0,0,0,0)
...
10=(0,0,0,0,0,0,0,0,0,1)

J'ai essayé ceci, mais ça ne fonctionne pas:

vecteur=[]
for i in liste_entier:
for j in liste_entier[i]:
np.append(vecteur,[0])
np.append(vecteur,[1])
for j in (10-liste_entier[i]):
np.append(vecteur,[1])

Pourriez vous m'aider ?

Merci d'avance...
A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, "ça ne fonctionne pas": message d'erreur?
remarques-tu que le programme python que tu partages est particulièrement illisible, sans les indentations?
par ailleurs, il est incomplet.
peux-tu donc partager un programme complet, testable, en utilisant le formatage de code proposé par ccm: Les Balises de code.
exemple:
import numpy as np
liste_entier=np.array([1,4])
for i in liste_entier: 
 vecteur=[] 
 for j in range(i-1): 
  vecteur=np.append(vecteur,[0]) 
 vecteur=np.append(vecteur,[1]) 
 for j in range(10-i): 
  vecteur=np.append(vecteur,[0])
 print (vecteur)
1
victordine Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse.
Je travaille en ce moment sur un projet de machine learning, et mon algorithme extrait des données d'un fichier excel avec 197 exemple.
Mais ici on va prendre une liste [1,3,5,8,3,5]

import numpy as np

liste_entier=[1,3,5,8,3,5]
liste_binaire=[]
for i in liste_entier:
     for j in liste_entier[i]:
          np.append(liste_binaire,[0])
     np.append(liste_binaire,[1])
     for j in (10-liste_entier[i]):
          np.append(liste_binaire,[1])

print(liste_binaire)


Et ça me donne "TypeError: 'int' object is not iterable" juste après la deuxième boucle.

J'aimerais que ça me donne [[1,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,0],[0,0,1,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0]]
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
as-tu comparé mon exemple au tien?
0
victordine Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Oui, cela fonctionne ! Merci !
0