J'ai un tableau 2D:
Je veux supprimer le résultat devrait être:
J'ai essayé d'utiliser [[0,1], [1,0], [1,1]] code>
[0,1] code> élément sans connaître sa position dans le tableau (car les éléments peuvent être mélangés). P>
[[0,0], [1,0], [1,1]]] code> p>
numpy.delete code> mais conserver Récupérez un tableau aplatie: P>
>>> np.where(arr==[0,1])
(array([0, 1, 1, 3]), array([0, 0, 1, 1]))
3 Réponses :
de la documentation:
numpy.delete (Arr, obj, axe = aucun) p>
Axe: Int, en option p>
L'axe le long de laquelle supprimer la sous-carraille définie par Obj. Si axe NONE Aucun, Obj est appliqué à la matrice aplatie p> blockQuote>
Si vous ne spécifiez pas l'axe (I.E. Aucun), il aplatira automatiquement votre tableau; Il vous suffit de spécifier le paramètre Axis, dans votre cas
np.delete (arr, [0,1], axis = 0) code> p>
Cependant, comme dans l'exemple ci-dessus , [0,1] est une liste d'indices; Vous devez fournir les indices / emplacement (vous pouvez le faire avec
np.where (condition, tableau) code> par exemple) p>
ici, vous avez un exemple de travail: p> < Pré> xxx pré> p>
Qui semble supprimer les éléments de 0 et 1; Je me retrouve avec tableau ([[[1, 0], [1, 1]]) code>
Oui, c'est comme ça que ça marche.Unheureusement, vous devrez spécifier les indices. Une solution consiste à utiliser NP.where pour obtenir les indices de votre réseau et supprimer uniquement ces indices.
Alors, comment utiliseriez-vous np.where code> pour trouver cet élément unique?
>>> np.where (arr == [0,1]) code> retourne
(tableau (0, 1, 1, 3]), tableau (0, 0, 1, 1]))) code> - pas même sûr de la façon dont A 3 a eu lieu là-bas. Mais j'ai essayé de multiples permutations de cela et n'aurez nulle part.
Le problème que vous faites face est que NP.Where () sur des tableaux multidimensionnels retourne Row_indices et colonnes_indices, pas un tuple (x, y) où la condition est satisfaite. J'ai mis à jour l'exemple de manière à voir un exemple de travail.
Ici, nous trouvons toutes les lignes correspondant au candidat ou alternativement, les rangées qui ne Strong> Faites correspondre le candidat P> [0, 1] code>
>>> arr[~(arr == [0, 1]).all(axis=1)]
array([[0, 0],
[1, 0],
[1, 1]])
mask = (arr==np.array([0,1])).all(axis=1) arr1 = arr[~mask,:] Look at mask.. It should be [False, True,...].
Vous devez d'abord identifier l'emplacement.