ist es möglich, ein Objekt aus einem numpy Array zu löschen, ohne den Index des Objekts zu kennen, sondern das Objekt selbst zu kennen?
Ich habe gesehen, dass es möglich ist, den Index des Objekts mit der Funktion np.delete zu verwenden, aber ich suche nach einer Möglichkeit, das Objekt, aber nicht seinen Index
zu verwendenBeispiel:
[a, b, c, d, e, f]
x = e
Ich möchte x löschen
thx im Voraus
Sie können den Index / die Indizes des Objekts mit np finden. argwwhere , und löschen Sie dann das / die Objekt (e) mit np .delete .
Beispiel:
%Vor%Die boolesche Indizierung oder Maskierung ist eine gute Methode, um bestimmte Elemente eines Arrays auszuwählen oder zu entfernen
Sie sprechen über das Entfernen eines bestimmten "Objekts". Nehmen wir das wörtlich und definieren Sie ein Array von dtype-Objekten:
%Vor% Hinter den Kulissen argwhere
und delete
verwenden Sie dies. Beachten Sie, dass argwhere
das Array x==d
boolean verwendet und es in Array-Indizes konvertiert. Und eine solche Maske zu konstruieren ist eine Möglichkeit, auf die delete
wirkt.
Es gibt einige wichtige Grenzen:
Dieser Gleichheitstest (oder Nichtgleichheitstest) muss für Ihre Werte funktionieren. Es kann nicht sein, wenn die Elemente floats sind.
Löschen aus einem 1d-Array ist einfacher als aus einem 2d (oder größer). Mit 2d müssen Sie entscheiden, ob Sie eine Zeile, eine Spalte oder ein Element löschen wollen (und dabei das Array flacher machen).
das Löschen von nur einem Element dieser Übereinstimmungen ist etwas kniffliger.
In einigen Fällen ist es möglicherweise besser, .tolist()
des Arrays zu verwenden und eine Listenmethode zu verwenden.
Es gibt keine exakte Entsprechung zu list.remove
für Arrays.