Assume a list of points or nodes. each one of them has x y and z coordinates . the distance between two points i and j equal D(i,j)= sqrt((xi-xj)^2+(yi-yj)^2+(zi-zj)^2)
. Here I got 400000 data points.
Now, I want to select a set of these nodes which have equal distances between them (the inter-distance is specified previously --> 0.05). Hence the selected points are uniformly distributed.
If run with a while loop, it takes approx 3h to complete the entire data set. Looking for fastest method.
no_rows = len(df)
i = 1
while i < no_rows:
a1 = df.iloc[i-1, 1]
a2 = df.iloc[i, 1]
b1 = df.iloc[i-1, 2]
b2 = df.iloc[i, 2]
c1 = df.iloc[i-1, 3]
c2 = df.iloc[i, 3]
dist = np.round(((a2-a1)**2+(b2-b1)**2+(c2-c1)**2)**0.5,5)
df.iloc[i, 6]= dist
if dist < 0.05000:
df = df.drop(i)
df.reset_index(drop = True, inplace = True)
no_rows = len(df)
i = i-1
i+=1