Si vous souhaitez récupérer plusieurs valeurs d'une liste en Python, vous pouvez les récupérer par tranches si elles sont consécutives, mais je ne savais pas comment les récupérer si elles n'étaient pas consécutives, alors je l'ai recherchée.
Il semble que ʻitemgetter` puisse être utilisé à partir de python2.5 ou version ultérieure, je vais donc essayer de l'utiliser. Si vous passez un index dans la liste, la valeur de cet index sera renvoyée.
from operator import itemgetter
a = ("a", "b", "c", "d", "e")
print itemgetter(1,3)(a) # ('b', 'd')
La raison pour laquelle je voulais faire cela est que ce serait bien si l'étiquette était renvoyée par apprentissage automatique, mais lors de l'extraction des données d'origine, je ne pouvais pas penser à un moyen facile de l'écrire. Par exemple, dans un classificateur qui fait la distinction entre les minuscules et les majuscules, lorsqu'une étiquette est retournée et que seule la majuscule en est extraite, j'ai écrit comme suit.
from operator import itemgetter
import numpy
label_prediction = numpy.array([0,0,1,1,0,1])
data = ["a","b","C","D","e","F"]
label_match = numpy.where(label_prediction==1)[0]
print itemgetter(*label_match)(data)
S'il vous plaît laissez-moi savoir s'il existe un autre bon moyen.
J'ai appris de s-wakaba! Merci beaucoup. J'étais pessimiste de ne pas pouvoir utiliser numpy s'il s'agissait d'une chaîne de caractères, mais je pourrais l'utiliser normalement. Beaucoup plus beau que d'utiliser itemgetter.
import numpy
label_prediction = numpy.array([0,0,1,1,0,1])
data = ["a","b","C","D","e","F"]
print numpy.array(data)[label_prediction==1]
Il serait utile que vous me disiez une meilleure façon d'écrire ce que vous avez recherché. Je voudrais prendre des notes et exposer mon ignorance.
Recommended Posts