我有两个嵌套列表A和B:
A = [[50,140],[51,180],[54,500],......]
B = [[50.1, 170], [51,200],[55,510].....]
每个内部列表中的第一个元素从0到大约1e5,第0个元素从大约50到大约700,这些元素是未排序的.我想要做的是,运行A [n] [1]中的每个元素并找到B [n] [1]中最接近的元素,但是当搜索最近的邻居时,我想仅在由A [n] [0]加或减0.5.
我一直在使用这个功能:
def find_nearest_vector(array, value):
idx = np.array([np.linalg.norm(x+y) for (x,y) in array-value]).argmin()
return array[idx]
Run Code Online (Sandbox Code Playgroud)
其中找到坐标之间的近邻A[0][:]和B[0][:],例如.但是,我需要将搜索范围限制在值A [0] [0]的某个小移位周围的矩形.另外,我不想重复使用元素 - 我希望在区间A [n] [0] +/- 0.5内的每个值A [n] [1]到B [n] [1]之间有一个独特的双射.
我一直在尝试使用Scipy的KDTree,但这会重用元素,我不知道如何限制搜索范围.实际上,我想在沿着特定轴的二维嵌套列表上进行一维NNN搜索,其中NNN搜索在由每个内部列表中的第0个元素定义的超矩形内的邻域加上或减去一些小的移位.
我有一个列表T = [[2,5],[4,7],[8,6],[34,74],[32,35],[24,7],[12,5],[0,34]],我想检查T中每个嵌入列表中的所有元素是否满足不等式.
到目前为止,我有:
upper = 10
lower = 0
for n in range(len(T)):
if all(lower < x < upper for x in T):
'do something'
else:
'do something different'
Run Code Online (Sandbox Code Playgroud)
因此,如果每个T [n]中的所有元素都在0到10之间,我想做某事,如果不然,那么我想做其他事情.在上面的列表T [0]中,T [1]和T [2]将满足不等式,而T [3]则不满足.
我有一个列表,A = [1.10,1.11,1.12,1.21,1.22,1.48]
我想将列表分组A到一个B带有输出的嵌套列表:
B = [(1.10, 1.11, 1.12),
(1.11, 1.12, 1.21),
(1.12, 1.21, 1.22),
(1.21, 1.22, 1.48)]
Run Code Online (Sandbox Code Playgroud)
我怎么能从A生产B?我希望这个例子足以继续下去.