Was ist ein schneller Weg, um eindeutige x, y Punkte (Entfernen von Duplikaten) in einem numpligen Array wie:
zu finden %Vor%Ich dachte daran, Punkte in komplexe Zahlen zu konvertieren und dann nach dem Einfachen zu suchen, aber das scheint ziemlich kompliziert zu sein:
%Vor% Ich denke, Sie haben hier eine sehr gute Idee. Denken Sie an den zugrunde liegenden Speicherblock, der zur Darstellung der Daten in points
verwendet wird. Wir sagen numpy, dass dieser Block ein Array von shape (10,2) mit dtype int32
(32-Bit-Integer) darstellt, aber es ist fast kostenlos, numpy denselben Speicherblock als ein Array von zu betrachten Form (10,) mit dtype c8
(64-Bit-Komplex).
Die einzigen echten Kosten sind also der Aufruf von np.unique
, gefolgt von einem weiteren Aufruf von view
und reshape
:
ergibt
%Vor%während
%Vor%ergibt
%Vor%Wenn das Ergebnis nicht sortiert werden muss, ist die Methode von wim schneller (Sie sollten vielleicht in Erwägung ziehen, seine Antwort zu akzeptieren ...)
%Vor%liefert diese Benchmarks:
%Vor%