Удалить нулевые строки сверху и снизу numpy-матрицы
Есть ли какой-то не костыльный способ удалить нулевые строки сверху и снизу numpy-матрицы? Пример
Input: [[0, 0], [0, 0], [1, 2], [3, 4], [0, 0], [0,0]
Output: [[1, 2], [3, 4]]
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Что-то такое получилось:
import numpy as np
arr = np.array([[0, 0], [0, 0], [1, 2], [3, 4], [0, 0], [0,0]])
cond = np.nonzero(~(arr == 0).all(axis=1))[0]
arr = arr[cond[0]:cond[-1]+1]
print(arr)
Вывод:
[[1 2]
[3 4]]
Update: Или даже вот так что ли работает. Я не совсем понимаю логику работы np.nonzero, но, видимо, достаточно одной этой функции собственно:
cond = np.nonzero(arr)[0]
arr = arr[cond[0]:cond[-1]+1]