gpt4 book ai didi

python - 向量化嵌套循环

转载 作者:太空狗 更新时间:2023-10-30 01:00:04 25 4
gpt4 key购买 nike

我希望对嵌套循环进行矢量化处理,该循环适用于 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)

最佳答案

查看 scipy.spatial;它有很多有效解决此类空间查询的功能; KDTrees特别是,即:

import scipy.spatial
out = scipy.spatial.cKDTree(variable).query_pairs(r=0.1, p=np.infinity)

关于python - 向量化嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38746087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com