2012-08-09 85 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))