【问题标题】:How to convert array output [0 0 0] to [0, 0, 0] in Python with Nearest Neighbour Algorithm?如何使用最近邻算法在 Python 中将数组输出 [0 0 0] 转换为 [0, 0, 0]?
【发布时间】:2017-07-28 12:05:50
【问题描述】:

我有一个 Ubuntu 14.04 32 位 VM 并使用默认的 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])
提前感谢您的帮助:)

【问题讨论】:

  • 你试过list(indices)吗?
  • print(indices) 结果是什么,一个字符串?
  • 如果我使用 list(indices),我根本不会得到任何输出 @Zinki
  • @MFHS 当然不是,你仍然需要在结果上调用 print 才能得到输出。

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


【解决方案1】:

打印(索引)

(打印 [0 1])

b = 列表(索引)

打印 b

(打印 [0,1])

【讨论】:

    【解决方案2】:

    将其转换为列表

    list(indices)
    

    试试,

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

    【讨论】:

    • 这将如何运作? arr是什么,请注明。
    • 如果我使用 list(indices),我根本不会得到任何输出 @MohamedThasinah
    • 我没有收到任何错误。我在我的系统中尝试过。你遇到了什么错误?
    • 我按照你的方法得到了输出。我还有一个问题,如何从输出中删除“数组”和所有括号,以便只有0, 1 作为输出?谢谢:) @Mo
    • 很好的答案,但我不想要输出中的括号,只需要元素0, 1(而不是[[0, 1]]。有什么方法可以从输出中删除所有括号?再次感谢:)
    猜你喜欢
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 2013-05-09
    • 2011-05-01
    • 1970-01-01
    相关资源
    最近更新 更多