我有3D numpy array
作为PCA
pcar =[[xa ya za]
[xb yb zb]
[xc yc zc]
.
.
[xn yn zn]]
其中每行是一个点,我从
PCA
上方选择了任意两个随机行作为群集out_list=pcar[numpy.random.randint(0,pcar.shape[0],2)]
这给出了具有2行的numpy数组。
我必须找到距out_list的每一行与pcar中的每一行(点)的欧几里得距离,并将该pcar点添加到out_list集群中的最近点。
最佳答案
Scipy中有一个非常快速的实现:
from scipy.spatial.distance import cdist, pdist
cdist像pchar一样获取两个向量,并计算每个点之间的距离。
pdist仅会给您该矩阵的上三角。
由于它们是在后台用C或Fortran实现的,因此它们的性能很高。
关于python - 在Python中计算PCA的欧几里得距离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22965803/