преобразование списка в отдельный отдельный список - PullRequest
3 голосов
/ 15 мая 2019

У меня есть numpy.ndarray, который выглядит так:

X = array([1., 1., 1., 1., 1., 1., 1., 2., 1., 1.])

Я попытался преобразовать в списки следующим образом:

samples = X.reshape(len(X)).tolist()

, который дал вывод, как это

[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0]

пытался преобразовать вышеперечисленное в отдельные списки. сделал это

new_list = [samples[i] for i in range(10)]

, который снова выдал вывод:

[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0]

я пытаюсь получить вывод, подобный этому:

[1.0]
[1.0]
[1.0]
[1.0]
[1.0]
[1.0]
[1.0]
[2.0]
[1.0]
[1.0]

Кто-нибудь может мне помочь с этим?

Ответы [ 3 ]

5 голосов
/ 15 мая 2019

Использование списка понимания, подробнее

Замените ваш код:

new_list = [samples[i] for i in range(10)]

К

new_list = [[samples[i]] for i in range(10)]

O / P:

[[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [2.0], [1.0], [1.0]]
3 голосов
/ 15 мая 2019

Добавьте дополнительную ось к вашему массиву с помощью None или np.newaxis, а затем используйте ndarray.tolist, что непосредственно даст вам вложенный список:

X[:,None].tolist()
# [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [2.0], [1.0], [1.0]]

Ваш подход с np.reshape не работает, поскольку вы не добавляете оси, вам потребуется:

X.reshape(len(X), 1).tolist() 
0 голосов
/ 15 мая 2019

образцов [я] должен быть в списке:

new_list = [[samples[i]] for i in range(10)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...