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,:])
我想知道我可以跳過循環或者做些什麼來使其更快?
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,:])
我想知道我可以跳過循環或者做些什麼來使其更快?
您可以直接比較A
和B
與A != B
,這將播出,由於不同的維數A
和B
擁有的,然後你可以使用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])
謝謝!你的解釋很好! – flyingpot
'(A!= B).sum(axis = 1)'? – Julien
謝謝,你是對的!@Julien – flyingpot