[英]How to calculate hamming distance between 1d and 2d array without loop
A 是形狀為 100 的一維數組,B 是形狀為 (50000, 100) 的二維數組。 我想計算 A 和 B 之間的漢明距離,並得到一個形狀為 50000 的數組 X。
我可以用一個循環來做到這一點:
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])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.