У меня есть фрейм данных pandas, содержащий список координат x, y, и я использую scipy.spatial, чтобы найти ближайшую точку в dataframe с учетом дополнительной точки.Различия scipy.spatial.KDTree в python 2.7 и 3.5
import pandas as pd
import numpy as np
import scipy.spatial as spatial
stops = pd.read_csv("stops.csv")
pt = x,y
points = np.array(zip(stops['stop_lat'],stops['stop_lon']))
nn = points[spatial.KDTree(points).query(pt)[1]]
Теперь, в python 2.7 это работает отлично. В python 3.5 возникает следующая ошибка:
.../scipy/spatial/kdtree.py", line 231, in __init__
self.n, self.m = np.shape(self.data)
ValueError: not enough values to unpack (expected 2, got 0)
В документах я не могу найти ничего полезного.
Что делает ' точки выглядят? В Python3 'zip()' возвращает объект '' zip' iterator '' (https://docs.python.org/3/library/functions.html#zip), а не список кортежей, поэтому 'points' является вероятно, массив 0-d объектов, содержащий итератор 'zip' во втором случае. –
Да, это была проблема. Я сделал список (zip (...)), и теперь он работает отлично. благодаря – Angelo