Удалить нулевые строки сверху и снизу 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]
→ Ссылка