У меня есть такая структура данных:
[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 Можете ли вы дать ответ, потому что это очень просто
не могли бы вы предоставить реальный пример ввода ... трудно сказать с предоставленным вводом
загляните в np.hstack vstack и т. д. и измените форму ...






Используйте 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])]
Я не уверен, что это сработает, его странное произвольное количество списков в каждом массиве
это не соответствует его вводу ... попробуйте repl.it/@JoranBeasley/LimegreenSecondary
Я считаю, что вы ищете 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]]
Я получаю тот же тип вывода, хотя
это не работает для его ввода ... см. мое начало ответа repl.it/@JoranBeasley/LimegreenSecondary
@JoranBeasley, у меня работает, добавление print(numpy.vstack(a)) возвращает сложенный массив
Я исправился ... Я думал, что это связано с той же проблемой, что и решение для сглаживания
[массив ([[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],
Все еще получаю этот результат
Возможно, посмотрите этот пост, поэтому я сделал это: stackoverflow.com/questions/53384396/…
@Snorrlaxxx, я не знаю почему, я не получаю этого вывода. Позже в массиве может происходить что-то странное.
На этом компьютере возникли проблемы, о которых не следовало публиковать в вашем ответе
Пожалуйста, опубликуйте предложенные вами изменения в своем вопросе, а не в моем ответе :)
См. Этот вопрос: stackoverflow.com/questions/53384990/…
Зачем вам это нужно? А что пробовали? Это довольно просто ...