假设我有一个由所有这些范围的组合组成的numpy数组:
A = numpy.arange(0.05, 7.05, 0.5)
B = numpy.arange(0.0,0.75, 0.15 )
C = numpy.arange(8.0, 12.0, 0.15)
D = numpy.arange(-2, 2, 0.15)
E = [0.5, 0.55, 0.6, 0.65, 0.7]
F = numpy.arange(0.1,2.1, 0.1)
G = [0.5, 1.0, 1.5]
生成的数组称为A
,是7行和15309000列。
现在我有了这个组:
group = [a ,b, c, d, e, f, g] = [1.22, 0.34, 9.45, -1.43, 0.52, 0.23, 0.64]
我正在寻找一种方法来找到A中最接近前一组的组合,因为所选择的组(最接近的组合)将是所有值最接近要查找的组的组:a是A中最接近的值,b是B中最接近的值,等等......
对于这种特殊情况,最接近的组将是:
closest_group = [1.05, 0.3, 9.5, -1.4, 0.5, 0.2, 0.5]
我找到了与scipy.signal.KDTree
不同的答案,例如:
A[spatial.KDTree(A).query(set)[1]]
但不幸的是,这并没有收敛,引发了这个错误:
RecursionError:超出最大递归深度