Wenn Sie ein R-Benutzer sind, sind die folgenden Vorgänge so häufig wie das Atmen. Damit können die Elemente ohne bestimmte Indizes extrahiert werden.
vec <- 1:10
ind_rm <- c(5, 7)
# ind_Extrahieren von Elementen durch Angabe eines anderen Index als rm
print(vec[-ind_rm])
[1] 1 2 3 4 6 8 9 10
Unerwartet kann ich mir keinen klugen Weg vorstellen, dies mit Numpy zu tun. Ich denke, jeder ist in Schwierigkeiten. Ich bin traurig, wenn ich der einzige bin.
Schließlich scheint die Vorstellung von etwas anderem als einem bestimmten Element wie R in erster Linie falsch zu sein. Überlegen wir uns also, wie Sie ein Array oder eine Liste erstellen, die die Indizes der Elemente enthält, die gehorsam belassen werden.
Wenn ich es gehorsam mache, fühle ich mich so, aber ich kann das Gefühl nicht auslöschen, dass etwas "in" oder etwas offensichtlich nutzlos berechnet ist.
import numpy as np
vec = np.arange(10)
ind_rm = [5, 7]
# [0, 1, 2, 3, 4, 6, 8, 9]Machen wollen!
ind = [i for i in range(10) if i not in ind_rm]
print vec[ind]
Mit Stapelüberlauf prüfen Ich war ein wenig beeindruckt von der folgenden Methode.
import numpy as np
vec = np.arange(10)
ind_rm = [5, 7]
# [True, True, True, True, False, True, False, True, True, True]Politik zu machen
ind = np.ones(10, dtype=bool)
ind[ind_rm] = False
print vec[ind]
Die Anzahl der Zeilen wird nicht gespeichert, aber es scheint etwas schneller zu sein, da es keine nutzlose Berechnung gibt.
Ich habe zuerst erfahren, dass np.ones
eine solche Verwendung hat.
Auf der Suche nach einem besseren Weg.
Recommended Posts