Conversion d'entier vers vecteur binaire

Résolu/Fermé
victordine Messages postés 6 Date d'inscription jeudi 5 juillet 2018 Statut Membre Dernière intervention 25 avril 2021 - Modifié le 19 juil. 2018 à 17:50
victordine Messages postés 6 Date d'inscription jeudi 5 juillet 2018 Statut Membre Dernière intervention 25 avril 2021 - 20 juil. 2018 à 10:36
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 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
Modifié le 19 juil. 2018 à 19:49
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 6 Date d'inscription jeudi 5 juillet 2018 Statut Membre Dernière intervention 25 avril 2021
Modifié le 19 juil. 2018 à 20:43
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 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
19 juil. 2018 à 23:49
as-tu comparé mon exemple au tien?
0
victordine Messages postés 6 Date d'inscription jeudi 5 juillet 2018 Statut Membre Dernière intervention 25 avril 2021
20 juil. 2018 à 10:36
Oui, cela fonctionne ! Merci !
0