что использовать в случае l2 нормы для массива с dim> 2. для матрицы у нас есть два варианта. Пример np.dot или np.matmul:
#for matmul
dists = np.reshape(np.sum(X**2, axis=1), [num_test,1]) + np.sum(self.X_train**2, axis=1) \
- 2 * np.matmul(X, self.X_train.T)
dists = np.sqrt(dists)
#for dot
x2 = np.dot(test, test.T)
y2 = np.dot(train,train.T)
xy = 2* np.dot(test,train.T)
dist = np.sqrt(x2 - xy + y2)
просто не хочу использовать cdisi.