Мне нужно рассчитать расстояние Хэмминга между:
- Мой эталонный набор данных формы N0 (строки) x M0 (столбцы) -
Ref.csv
- Мой тестовый набор данных формы N1 (строки) x M1 (столбцы) -
Tes.csv
Результирующая матрица должна иметь форму N0 x N1, которая содержит расстояние Хэмминга между всеми ссылочными строками и всеми строками теста (как столбец в новом наборе данных).
Выполнение этого с помощью цикла может быть неэффективным.
Некоторые ресурсы, которые я использовал
from scipy.spatial.distance import hamming
В идеале я бы хотел рассчитать расстояние Хэмминга, как показано ниже, что в вычислительном отношении менее затратно. В приведенном ниже цикле вычисляется евклидово расстояние.
def compute_distances_no_loops(Train, X):
dists = -2 * np.dot(X, Train.T) + np.sum(Train**2, axis=1) + np.sum(X**2, axis=1)[:, np.newaxis]
return dists
Вот наборы данных csv в Dropbox, которые вы можете использовать: HammingDistance