Свести массивы в список списков

У меня есть такая структура данных:

[array([[0, 1, 0, 1, 1, 1, 0, 5, 1, 0, 2, 1]]), array([[0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0],
       [1, 3, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0]]), array([[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
       [0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], etc....

Я хочу превратить это в список списков, например:

[[0 1 0 1 1 1 0 5 1 0 2 1]
 [1 6 1 0 0 1 1 1 2 0 2 0]
 [2 0 5 0 5 2 2 0 6 3 2 2]
 [1 0 1 1 1 1 0 2 0 0 0 1]]

Как мы это делаем в Python?

Зачем вам это нужно? А что пробовали? Это довольно просто ...

Julien 20.11.2018 02:06

@Julien Можете ли вы дать ответ, потому что это очень просто

user9366862 20.11.2018 02:06

не могли бы вы предоставить реальный пример ввода ... трудно сказать с предоставленным вводом

Joran Beasley 20.11.2018 02:07

загляните в np.hstack vstack и т. д. и измените форму ...

Julien 20.11.2018 02:07
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
4
70
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Используйте flatten:

print([i.flatten() for i in l])

Или:

print(list(map(lambda x: x.flatten(),l)))

Оба вывода:

[array([0, 1, 0, 1, 1, 1, 0, 5, 1, 0, 2, 1]), array([0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 1, 3, 1, 0, 0, 1, 1, 1, 1, 0, 1,
   0]), array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   0])]

Я не уверен, что это сработает, его странное произвольное количество списков в каждом массиве

Joran Beasley 20.11.2018 02:08

это не соответствует его вводу ... попробуйте repl.it/@JoranBeasley/LimegreenSecondary

Joran Beasley 20.11.2018 02:10
Ответ принят как подходящий

Я считаю, что вы ищете vstack:

>>> np.vstack(l)
array([[0, 1, 0, 1, 1, 1, 0, 5, 1, 0, 2, 1],
       [0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0],
       [1, 3, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0],
       [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
       [0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])

Обратите внимание, что это эквивалентно:

>>> np.concatenate(x, axis=0)
array([[0, 1, 0, 1, 1, 1, 0, 5, 1, 0, 2, 1],
       [0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0],
       [1, 3, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0],
       [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
       [0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])

Чтобы преобразовать в список, используйте tolist:

>>> np.vstack(l).tolist()
[[0, 1, 0, 1, 1, 1, 0, 5, 1, 0, 2, 1], [0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0], [1, 3, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

# or

>>> np.concatenate(x, axis=0).tolist()
[[0, 1, 0, 1, 1, 1, 0, 5, 1, 0, 2, 1], [0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0], [1, 3, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

Я получаю тот же тип вывода, хотя

user9366862 20.11.2018 02:10

это не работает для его ввода ... см. мое начало ответа repl.it/@JoranBeasley/LimegreenSecondary

Joran Beasley 20.11.2018 02:10

@JoranBeasley, у меня работает, добавление print(numpy.vstack(a)) возвращает сложенный массив

sacuL 20.11.2018 02:12

Я исправился ... Я думал, что это связано с той же проблемой, что и решение для сглаживания

Joran Beasley 20.11.2018 02:14

[массив ([[0, 1, 0, 1, 1, 1, 0, 5, 1, 0, 2, 1]]), массив ([[0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0], [1, 3, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0]]), массив ([[0, 0, 0, 0 , 0, 0, 0, 1, 0, 0, 0, 0], [0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 2 , 0, 2, 1, 1, 0, 2, 1, 0, 0]]), array ([[0, 1, 0, 1, 1, 1, 0, 5, 1, 0, 2, 1] , [1, 6, 1, 0, 0, 1, 1, 1, 2, 0, 2, 0], [2, 0, 5, 0, 5, 2, 2, 0, 6, 3, 2, 2], [1, 0, 1, 1, 1, 1, 0, 2, 0, 0, 0, 1]]), массив ([[0, 0, 0, 0, 0, 0, 0, 4 , 0, 0, 1, 0], [1, 5, 1, 0, 0, 1, 1, 1, 2, 0, 2, 0],

user9366862 20.11.2018 02:17

Все еще получаю этот результат

user9366862 20.11.2018 02:17

Возможно, посмотрите этот пост, поэтому я сделал это: stackoverflow.com/questions/53384396/…

user9366862 20.11.2018 02:18

@Snorrlaxxx, я не знаю почему, я не получаю этого вывода. Позже в массиве может происходить что-то странное.

sacuL 20.11.2018 02:21

На этом компьютере возникли проблемы, о которых не следовало публиковать в вашем ответе

user9366862 20.11.2018 02:27

Пожалуйста, опубликуйте предложенные вами изменения в своем вопросе, а не в моем ответе :)

sacuL 20.11.2018 02:31

См. Этот вопрос: stackoverflow.com/questions/53384990/…

user9366862 20.11.2018 02:33

Другие вопросы по теме