Как убрать нулевые строки и колонки из двух-мерной матрицы?
list(zip(*filter(any, zip(*filter(any, matrix)))))UPD Вынесу из комментов окончательный вариант:def trim(matrix):
    fltr = lambda matrix: zip(*filter(any, matrix))
    return [list(row) for row in fltr(fltr(matrix))]

matrix = trim(matrix)
без сторонних либstart = [
    [0, 4, 0, 1, 0],
    [0, 0, 2, 3, 0],
    [0, 0, 3, 1, 0],
    [0, 0, 0, 0, 0],
]
result = [list(t) for t in zip(*[i for i in zip(*[x for x in start if any(x)]) if any(i)])]