Как удалить нули из строк массива?
Можно ли как-то удалить из каждой строки массива:
numpy.array([
[1, 1, 1, 1, 1, 0, 0],
[0, 1, 1, 1, 1, 0, 0],
[0, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 1, 0, 0],
[0, 0, 0, 1, 1, 0, 0],
[0, 0, 0, 1, 1, 1, 1],
[0, 0, 0, 1, 1, 1, 1]
])
нули, при этом, чтобы сами строки не сбились в кучу, как происходит с np_arr[np_arr!= 0].
В итоге, чтобы массив был таким:
[
[1, 1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1],
[1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]
]
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Результирующий список из вопроса не может быть представлен в виде numpy.ndarray и поэтому я себе не представляю векторизированное решение, т.к. такие решения должны возвращать либо скаляр либо ndarray.
Вот простое невекторизированное решение:
In [202]: res = [x[x!=0].tolist() for x in arr]
In [203]: res
Out[203]:
[[1, 1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1],
[1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]