如何在Python中使用最近邻算法将数组输出[0 0 0]转换为[0,0,0]?

时间:2017-07-28 12:05:51

标签: python arrays numpy ubuntu-14.04 nearest-neighbor

我有一个Ubuntu 14.04 32位虚拟机并使用默认的Python 2.7。我有一个最近邻脚本,如下所示:

import numpy as np
from sklearn.neighbors import NearestNeighbors

X = np.array([[28273, 20866, 29961, 27190, 31790, 19714, 8643, 14482, 5384],
[12343, 45634, 29961, 27130, 33790, 14714, 7633, 15483, 4484]])

knn = NearestNeighbors(algorithm='auto', leaf_size=30, n_neighbors=5, p=2, 
radius=1.0, warn_on_equidistant=True).fit(X)

distance, indices = knn.kneighbors(X[0])
print(indices)

虽然脚本运行成功,但我也得到了输出 - [[0 1]](或类似的东西)
问题是没有任何逗号分隔数组中的每个元素。我在网上看过类似的代码,其他代码的输出就像 - array([[0, 1]])[[0, 1]]
我试过了print(', '.join(indices))但是却抛出了错误 -
print(', '.join(indices)) TypeError: sequence item 0: expected string, numpy.ndarray found
如何修改脚本以使输出类似于上面提到的输出? ([0,1])
在此先感谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

  

print(indices)

     

(打印[0 1])

     

b = list(indices)

     

打印b

     

(打印[0,1])

答案 1 :(得分:0)

将其转换为列表

list(indices)

试,

print indices
>>>[[0 1]]
print list(indices)
>>>[array([0, 1])]
print indices.tolist()
>>>[[0, 1]]