J'ai une très grande liste de listes contenant ndarrays numpy où j'ai besoin de mapper des lettres à une valeur entière. Ceci est dans la ligne de ce que je pensais pouvoir fonctionner, mais il ne semble pas attraper tous les tableaux.Remplacer des valeurs dans numpy ndarray
import numpy as np
x = [np.array(['a','b','c']),np.array(['d','e']),np.array(['a','e'])]
dict_x = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e':5}
x[ x == 'a'] = dict_x.get('a')
Output: [1, array(['d', 'e'],
dtype='<U1'), array(['a', 'e'],
dtype='<U1')]
J'ai aussi essayé de parcourir toutes les clés pour les remplacer dans le tableau un par un avec les éléments suivants
for i in dict_x.keys():
x[ x == i] = dict_x.get(i)
mais retourne, que je suppose sens. Quelqu'un at-il des moyens astucieux de remplacer toutes ces valeurs à la fois et dans tous les cas? Merci beaucoup!
[5, array(['d', 'e'],
dtype='<U1'), array(['a', 'e'],
dtype='<U1')]
Oui - exactement. J'ai juste fait une boucle pour faire une boucle sur toutes les clés du dictionnaire en tant que boucle externe et ensuite mettre la vôtre comme boucle interne avec une variable pour où 'a' était. J'espérais un one shot remplacer tout, mais je pense que devrait toujours être O (n), donc pas de mal je suppose, non? Merci! – user6142489
Je viens de découvrir que cela tronque le nombre à un seul chiffre. Donc, 1000 est lu comme 1. Toutes les idées? – user6142489
Étant donné que le type de tableau est '