我正在努力寻找一种将列表列表转换为成对数组的快速方法。对的第一个值是列表行的索引,第二个值由列表中该列表行的每个值组成。如果行是空列表,则不存在对,因此不应创建对。在
我希望得到类似于通过以下方式获得的结果:
combarray = numpy.concatenate((t1, t2), axis=0)
tree = cKDTree(combarray)
pairlist = tree.query_pairs(r = distance )
pairs = numpy.array(list(pairlist))
points = len(t1)
check = numpy.logical_and(pairs[:,0] < points, pairs[:,1] >= points)
validpairs = pairs[check]
validpairs[:,1] -= points
不幸的是,两个主要原因的组合tree.query_对打电话大约需要使用t1的两倍时间tree.query_ball_树(t2tree,r=distance)由于组合的两个数组的大小。如果我能从KDTree.query球回到一对有效的阵列,那么它可能是更快的选择使用。在
t1是3d中的一组顶点,t2是3d中的一组不同的顶点。距离是建立“近”点的参数,其中一些点的顶点值相同,即我当前使用的值为0.02。这里的要点是转换列表,例如
^{pr2}$对数组: [[1,3], [1,5], [2,1], [4,2]]
大多数行都是空的,通常只有少数几行(每行中的元素可能多达20个,但这是未知的)。每组t1和t2值可以是3到大约3000个值。在
结果:
^{pr2}$或者,这一个衬垫将产生相同的输出:
^{3}$相关问题 更多 >
编程相关推荐