我正在解決一個問題,我需要將 1 個特定陣列與數十萬個其他陣列進行比較,并回傳一個結果串列,顯示它們彼此之間的相似程度,我讀到 numpy 可能是最好的庫陣列(如果有更好的請告訴我:)所以我寫了這個,但它仍然很慢。我不是最擅長編程,所以任何幫助改進這一點將不勝感激!
import numpy as np
list_of_arrays = [np.random.randint(0, 2, (30, 30)) for array in range(100000)]
base_array = np.random.randint(0, 2, (30, 30))
results = []
for array in list_of_arrays:
results.append(np.sum(np.equal(base_array, array)))
uj5u.com熱心網友回復:
您可以使用 numpy 廣播魔法在一個串列中完成它,而無需串列理解或任何型別的回圈:
results = np.equal(base_array, list_of_arrays).sum(axis=1).sum(axis=1)
你有太多的陣列,它不能變得更快;)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/389381.html
上一篇:證件照制作如此簡單——基于人臉檢測與自動人像分割輕松制作個人證件照(C++實作)
下一篇:塊替換編碼的numpy二維陣列
