NumPy: Comment filtrer les lignes de la matrice
Je suis nouveau sur numpy et de la difficulté à essayer de filtrer un sous-ensemble de l'échantillon.
J'ai une matrice de la forme (1000, 12)
. C'est, d'un millier d'échantillons, avec 12 colonnes de données dans chaque. Je suis prêt à créer deux matrices, l'une avec toutes les valeurs aberrantes dans l'échantillon, et de l'autre avec tous les éléments qui ne sont pas des valeurs aberrantes; Les matrices résultantes devrait avoir cette forme:
norm.shape = (883, 12)
outliers.shape = (117, 12)
Pour identifier une valeur aberrante, je suis en utilisant cette condition:
cond_out = (dados[0:,RD_EVAL] > _max_rd) | (dados[0:,DUT_EVAL] > _max_dut)
Qui est, pour chaque ligne de la matrice, je suis à la recherche pour les valeurs de deux colonnes. Si l'un d'entre eux est au-dessus d'un certain seuil, puis la ligne est considéré comme atypique. Le point est, cette condition a une forme (1000,)
, donc quand je compresse la matrice d'origine, je reçois un (117,)
résultat. Comment ai-je pu filtrer la matrice de sorte que le résultat serait (117,12)
, c'est une matrice dont toutes les lignes qui sont des valeurs aberrantes, mais avec toutes les colonnes de données dans chacun d'eux?
OriginalL'auteur | 2012-08-14
Vous devez vous connecter pour publier un commentaire.
Permet de filtrer toutes les lignes qui sont à moins de zéro dans la deuxième colonne:
Vous voir, vous obtenez un ensemble logique que vous pouvez utiliser pour sélectionner les lignes:
OriginalL'auteur Theodros Zelleke
Peut-être quelque chose de ce genre?
Voir les docs sur des fonctions avancées d'indexation.
OriginalL'auteur DSM