2017-10-16 50 views
1

A是形狀爲100的1d陣列,B是形狀爲(50000,100)的2d陣列。我想計算A和B之間的漢明距離,並用得到的形狀的排列X 50000如何計算不帶回路的1d和2d陣列之間的漢明距離

我可以用一個循環做到這一點:

for i in range(50000): 
    X[i] = np.count_nonzero(A != B[j,:]) 

我想知道我可以跳過循環或者做些什麼來使其更快?

+0

'(A!= B).sum(axis = 1)'? – Julien

+0

謝謝,你是對的!@Julien – flyingpot

回答

1

您可以直接比較ABA != B,這將播出,由於不同的維數AB擁有的,然後你可以使用np.count_nonzero每行與axis=1

np.count_nonzero(A != B, axis=1) 

A = np.array([1,2]) 
B = np.array([[1,2],[3,2],[1,3],[2,4]]) 

np.count_nonzero(A != B, axis=1) 
# array([0, 1, 1, 2]) 
+0

謝謝!你的解釋很好! – flyingpot