我正在寻找向量化嵌套循环,这将工作在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