我正在尝试两种方法来实现欧氏距离的平方结果。
通过 Numpy:
def inference(feature_list):
distances = np.zeros(len(feature_list))
for idx, pair in enumerate(feature_list):
distances[idx] = euclidean_distances(pair[0].reshape((1, -1)), pair[1].reshape((1, -1))).item()
distances[idx] = distances[idx] * distances[idx]
return distances
通过蟒蛇:
def inference1(feature_list):
distances = np.zeros(len(feature_list))
for idx, pair in enumerate(feature_list):
for pair_idx in range(len(pair[0])):
tmp = pair[0][pair_idx] - pair[1][pair_idx]
distances[idx] += tmp * tmp
return distances
测试结果的代码是:
def main(args):
d = 128
n = 100
array2 = [(np.random.rand(d)/4, np.random.rand(d)/3) for x in range(n)]
result = sample.inference(array2)
print(list(result)) # print result 1
result = sample.inference1(array2)
print(list(result)) # print result 2
当 n 达到 100000 时结果不同,而当 n 小时结果保持不变。
为什么会发生?我怎样才能得到相同的结果?
慕神8447489
相关分类