小编Hol*_*ltz的帖子

具有指定范围的最近邻1维数据

我有两个嵌套列表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个元素定义的超矩形内的邻域加上或减去一些小的移位.

python algorithm numpy nearest-neighbor scipy

6
推荐指数
1
解决办法
1806
查看次数

Python - 检查列表中的所有元素是否满足不等式

我有一个列表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]则不满足.

python inequality list

2
推荐指数
1
解决办法
5017
查看次数

在条件下将列表分组到嵌套列表中 - Python

我有一个列表,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?我希望这个例子足以继续下去.

python grouping list

0
推荐指数
1
解决办法
242
查看次数