0
votes

Tableau numpy utilisant des valeurs d'un objet

J'ai un objet -> {0: 0,8, 1: 0.2, 2: 0, 3: 0}

Je veux le convertir en une matrice numpue, où les touches sont l'index et les valeurs sont les valeurs du tableau -> [0,8, 0,2, 0, 0]

Quel est le moyen le plus rapide et efficace de faire cela?

J'utilise une boucle pour la boucle, mais y a-t-il une meilleure façon de le faire?


1 commentaires

Le d.values ​​() Les réponses ci-dessous sont correctes pour votre entrée commandée (en supposant que vous avez py> 3.6 où dict ( Stackoverflow.com/questions/39980323/... ) Gagné de la commande d'insertion). Mais y a-t-il une chance que votre dict soit entré dans un «mauvais» ordre? Par exemple d = {1: 1,1, 2: 2.2, 0: 0,8}


5 Réponses :


1
votes

Assumer votre dictionnaire est appelé dict : xxx


0 commentaires

0
votes

La réponse ci-dessus donne dict_values, mais était dans la bonne direction

la bonne façon de le faire est la suivante: xxx


0 commentaires

0
votes

Dictionnaire est intrinsèquement sans commande. Vous auriez besoin de trier vos valeurs en fonction de vos touches (en supposant que vous n'avez pas de clé manquante dans votre dictionnaire):

[0.8, 0.2, 0, 0]


0 commentaires

1
votes

clés , éléments et valeurs sont le moyen le plus rapide d'obtenir des "choses" d'une dicte. Sinon, vous devez iTER sur les clés. Une approche générale qui permet d'ignorer des indices et des indices hors commandants: xxx


0 commentaires

0
votes

Une solution si l'entrée DICT n'est pas commandée ou n'a pas de valeurs manquantes:

d = {1:1.1, 2:2.2, 0: 0.8, 4:4.4}
sz = 1+max(d.keys())   # or len(d) if you are sure there are no missing values 
x = np.full(sz, np.nan)
x[list(d.keys())] = list(d.values())
x
#array([0.8, 1.1, 2.2, nan, 4.4])


0 commentaires