我有这样的数据
listL= array([array([-12939613.07220617, 3962855.50690994]),
array([-12939614.67349505, 3962828.80807231]),
array([-12939484.00289515, 3962828.1637531 ]),
array([-12939484.98046737, 3962854.91251931]),
print(type(listL)) -> <class 'numpy.ndarray'>
print(type(listL[0])) -> <class 'numpy.ndarray'>
print(type(listL[0][0])) -> <class 'numpy.float64'>
我有第二个数据是这样的:
^{pr2}$两组数据的类型是相同的,但是我有一个函数可以处理'a',但不能处理'listL',我不知道为什么。在
A[spatial.KDTree(A).query(coordinate)[1]]
有用,但是
listL[spatial.KDTree(listL).query(coordinate)[1]]
返回错误:
not enough values to unpack (expected 2, got 1)
ListL
在某些方面是一种病理结构,它是一个二维数组的数组。在numpy/scipy
在某种程度上可以优雅地接受大多数可以解释为2D数组的东西,例如,如果您用KDTree(list(ListL))
对KDTRee(ListL)
进行重新处理,它是有效的。在为什么有用?因为
list(listL)
的行为与大多数“本质上是2D”结构(如列表等)类似。我们可以通过array
或asarray
或asanyarray
等发送它,以获得真正的2D数组。在数组是少数仍然会使数组转换机制出错的情况之一:
^{pr2}$我们可以看到,尽管我们试图将其转换为普通数组,
listL
仍将其形状报告为1D。这似乎是引发您所观察到的异常的原因。在相关问题 更多 >
编程相关推荐