我希望对一个嵌套循环进行向量化,这个循环将用于处理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