我正在尝试展平 scikit-learn KDtree 的输出。我还想在展平数组上调用 np.unique() 。
我拨打的电话是:
kd_tree = KDTree(X)
idxs = kd_tree.query_radius(Y, r=0.2)
X、Y 的尺寸为 (49,2)(它们是 2D 坐标)。
我得到的输出是:
[array([], dtype=int64) array([7]) array([ 8, 21]) array([ 9, 22, 35])
array([10, 23, 36]) array([11, 24, 37]) array([12, 25, 38]) array([0])
array([ 1, 14]) array([ 2, 15, 28]) array([ 3, 16, 29, 42])
array([ 4, 17, 30, 43]) array([ 5, 18, 31, 44]) array([ 6, 19, 32, 45])
array([7]) array([ 8, 21]) array([ 9, 22, 35]) array([10, 23, 36])
array([11, 24, 37]) array([12, 25, 38]) array([13, 26, 39])
array([ 1, 14]) array([ 2, 15, 28]) array([ 3, 16, 29, 42])
array([ 4, 17, 30, 43]) array([ 5, 18, 31, 44]) array([ 6, 19, 32, 45])
array([20, 33, 46]) array([ 8, 21]) array([ 9, 22, 35])
array([10, 23, 36]) array([11, 24, 37]) array([12, 25, 38])
array([13, 26, 39]) array([27, 40]) array([ 2, 15, 28])
array([ 3, 16, 29, 42]) array([ 4, 17, 30, 43]) array([ 5, 18, 31, 44])
array([ 6, 19, 32, 45]) array([20, 33, 46]) array([34, 47])
array([ 9, 22, 35]) array([10, 23, 36]) array([11, 24, 37])
array([12, 25, 38]) array([13, 26, 39]) array([27, 40]) array([41])]
我希望输出为(无需循环数组):
[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47]
如果您显示的输出是
idxs
,您可以使用 numpy 中的 hstack
和 unique
。
np.unique(np.hstack(idxs))