Comment filtrer un tableau numpy en utilisant les valeurs d'un autre tableau?
J'ai deux tableaux NumPy, par exemple:
a = [1,2,3,4,5]
et une matrice de filtre, par exemple:
f = [False, True, False, False, True]
len(a) == len(f)
Comment puis-je obtenir un nouveau tableau numpy avec seulement les valeurs dans un, où le même indice dans f
est Vrai? Dans mon cas: [2, 5]
.
En fonction de la solution retenue (avec des valeurs différentes):
>>> a = numpy.array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
>>> b = numpy.array([True, False, True, False, True, False, True, False, True, False])
>>> a[b]
array([1, 3, 5, 7, 9])
source d'informationauteur Michel Keijzers | 2012-02-15
Vous devez vous connecter pour publier un commentaire.
NumPy prend en charge boolean indexation
Cela suppose que
a
etf
sont NumPy des tableaux plutôt que des listes Python (comme dans la question). Vous pouvez convertir avecf = np.array(f)
.Si vous n'en avez pas encore besoin des tableaux numpy, ici avec une simple liste:
Pour les pré-versions 2.7 de python, vous devez lancer votre propre (voir le manuel):