Conversion d'entier vers vecteur binaire

Résolu
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...

2 réponses

  1. Contributeur
    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
    1. 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
      1. Contributeur
        as-tu comparé mon exemple au tien?
        0
      2. Oui, cela fonctionne ! Merci !
        0