*It computes minimum distances between one point and a set of points.
*This function computes for each row in X, the index of the row of Y which is closest (according to the specified distance).
*This function works with dense 2D arrays only.
Parameter:
*X - array like structure.
*Y - array like structure.
Returns:
*Returns minimum indices array.
Implementation of Pairwise Distances Argmin:
from math import *
import numpy as np
class MinDis:
defdii(self,a,b):
s=0
for i inrange(len(a)):
s += (a[i] - b[i]) * (a[i] - b[i])
return sqrt(s)
defmidis_calc(self,l1,l2):
ans = []
for j inrange(len(l1)):
x = self.dii(l1[j],l2[0])
idx = 0
for i inrange(1,len(l2)):
y = self.dii(l1[j],l2[i])
if y<x:
idx = i
ans.append(idx)
print(ans)
defmain():
dis = MinDis()
l1 = [[1,2],
[4,5]]
l2 = [[1,2],
[4,5]]
dis.midis_calc(l1,l2)
if __name__=="__main__":
main()
Output:
[0, 1]
Using Inbuilt Library:
from sklearn.metrics import pairwise_distances_argmin
Comments