我编写了以下函数,该函数需要数据,要查找的对等点数以及要查找前N个最近邻居的索引:
def fit_nearest_neighbors(data, number_of_peers, index):
peer_data = FindPeers.filt_data(data)
peer_data_array = np.array(peer_data)
knn = NearestNeighbors(algorithm = 'auto', n_neighbors = number_of_peers, metric = 'minkowski', p = 2)
knn.fit(peer_data_array)
return knn.kneighbors(peer_data_array[index], return_distance = False)
但是返回后的最后一行代码却出现以下错误:
ValueError: Expected 2D array, got 1D array instead:
array=[2.86839521e-01 7.63588709e-01 1.00000000e+00 1.73483898e-01
0.00000000e+00 1.25068828e-02 1.66424454e-17 4.38357126e-01
7.55219585e-03 6.03820534e-02 2.72387749e-01].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
它打印的错误数组基本上是该特定index
上存在的数据点。我了解该错误,但我不知道该如何解决。任何类型的线索/答案都会有所帮助。
peer_data_array = np.array(peer_data).reshape(-1, 1)