我有特征向量的列表,并想以计算特征向量的距离L2向所有其他特征向量,作为唯一性的措施。这里,给出了min_distances[i]
第i个特征向量的L2范数。
import numpy as np
# Generate data
nrows = 2000
feature_length = 128
feature_vecs = np.random.rand(nrows, feature_length)
# Calculate min L2 norm from each feature vector
# to all other feature vectors
min_distances = np.zeros(nrows)
indices = np.arange(nrows)
for i in indices:
min_distances[i] = np.min(np.linalg.norm(
feature_vecs[i != indices] - feature_vecs[i],
axis=1))
作为为O(n ^ 2)它是痛苦的缓慢,并想优化它。我可以摆脱的for循环/矢量化这使得min
和linalg.norm
被称为只有一次?