Ich möchte die EPS von DBSCAN finden. Ich habe eine Reihe von Punkten und muss den Abstand von jedem Punkt zu jedem anderen Punkt berechnen. Wo ein Array von Form ist (2267436, 2), dann finde den Nah- und den Minpunkt. Hier sind meine Daten:Speicherfehler beim Berechnen der euklidischen Entfernung zwischen den Punkten
xy= [[ 177963.16728699 2506663.75713195]
[ 176147.50406716 2502422.34894945]
[ 178480.33178874 2507299.83467826]
...,
[ 231205.88139267 2684014.30324774]
[ 231207.81085397 2684014.52219471]
[ 231214.870296 2684054.8263628 ]]
Ich versuche, diese Methoden wie:
dist = scipy.spatial.distance.cdist(xy, xy,'euclidean')
oder
np.sqrt((np.square(npxy[:,np.newaxis]-npxy).sum(axis=2)))
oder
dist=scipy.spatial.distance.pdist(npxy)
d_matrix = scipy.spatial.distance.squareform(dist)
Ich erhalte Memory für alle. Gibt es eine Lösung, um es herauszufinden?
Es gibt 2.267.436 wählen 2 = 2,570,631,873,330 (über 2,5 Billionen) eindeutige Paare von Punkten, und ein naiver Abstandsmatrix wird über 5 Billionen Einträge haben. Vielleicht sollten Sie Ihren Algorithmus überdenken. –
@FenilPatel Bitte lesen Sie die Frage noch einmal und überdenken Sie, ob "knear" wirklich ein Tippfehler war oder ob es sich auf [knn] bezieht (https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm). Wenn Sie nach einer Bearbeitung immer noch nicht verstehen, was eine Person bedeutet, bearbeiten Sie nicht an erster Stelle. –