2017-10-16 28 views
1

Aは形状100の1次元配列、Bは形状(50000,100)の2次元配列です。私はループでそれを行うことができますAとBの間のハミング距離を計算すると、形状50000ループなしで1次元配列と2次元配列の間のハミング距離を計算する方法

で、配列Xを取得:

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

私が知りたいのですが、私はループをスキップすることができますそれをより速くする何かをするか?

+0

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

+0

ありがとうございます、あなたは正しいです!@Julien – flyingpot

答えて

1

あなたは直接ABが持つ次元の異なる数による放送れる、A != BABを比較することができ、その後、あなたはaxis=1で行ごとnp.count_nonzeroを使用することができます。

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

関連する問題