我正在尋找向量化嵌套循環,這將工作在300,000列表的列表上,每個列表包含3個值。嵌套循環將每個列表的值與其他列表中的對應值進行比較,並且將僅添加具有它們之間具有最大差值0.1的對應值的列表索引。因此,含有[0.234,0.456,0.567]的清單和含有[0.246,0.479,0.580]的清單屬於這一類別,因爲它們的相應數值(即0.234和0.246; 0.456和0.479; 0.567和0.580)有差異它們之間小於0.1。向量化嵌套循環
我目前使用下面的嵌套循環來做到這一點,但它目前需要約58小時才能完成(總共90萬億次迭代);
import numpy as np
variable = np.random.random((300000,3)).tolist()
out1=list()
out2=list()
for i in range(0:300000):
for j in range(0:300000):
if ((i<j) and ((abs(variable[i][0]-variable[j][0]))<0.1) and ((abs(variable[i][1]-variable[j] [1]))<0.1) and ((abs(variable[i][2]-variable[j][2]))<0.1)):
out1.append(i)
out2.append(j)
你'variable'是隨機的,它只是爲例子,或者是你真正模擬的東西嗎? – Julien
是的,它只是爲了舉例 - 實際上我有一個列表,通過模擬生成,實際上有數據落在我提到的閾值內。 – JBorg