Conversion d'entier vers vecteur binaire

Résolu
victordine Messages postés 6 Statut Membre -  
victordine Messages postés 6 Statut Membre -
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. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
  2. victordine Messages postés 6 Statut Membre
     
    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. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      as-tu comparé mon exemple au tien?
      0
    2. victordine Messages postés 6 Statut Membre
       
      Oui, cela fonctionne ! Merci !
      0