2012-08-09 84 views

回答

1

最好的方法是用np.nan填充你的X数组以排除点。例如,假设一个2D的情况与X中的(10,2)阵列:

import numpy as np 
X = np.random.rand(10, 2) 

假设要排除X [7]从计算:

X[7] = np.nan 
my_dist = pdist(X, "euclidean") 

然后,”将会看到my_dist对包含与排除元素计算距离的对具有'nan'。您可以排除多个元素。

一个更好的主意是使用numpy的蒙面数组,但pdist会忽略蒙面数组并使用数据。然而,一旦你有输出my_dist,你可以将它转换为一个掩模阵列,这样nans就不会妨碍未来的阵列操作:

my_dist = np.ma.array(my_dist, mask = ~np.isfinite(my_dist))