簡體   English   中英

如何在沒有循環的情況下計算一維和二維數組之間的漢明距離

[英]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,:])

我想知道我可以跳過循環還是做一些事情來使它更快?

您可以直接將ABA != B進行比較,由於AB的維數不同,這將廣播,然后您可以使用每行np.count_nonzeroaxis=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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM