import numpy as np
# get matrix, named A
diag = A.diagonal()
diag_no_0 = diag[diag != 0]
mult = np.multiply.reduce(diag_no_0)
matr = [[1,2,3,4,5,6,7,8,9,0],
[1,0,3,4,5,6,7,8,9,1],
[1,2,3,4,5,6,7,8,9,2],
[1,2,3,0,5,6,0,8,9,3],
[1,2,3,4,5,0,7,8,9,4],
[1,2,3,4,0,6,7,8,9,5],
[1,2,3,4,5,6,7,8,9,6],
[1,2,3,4,5,6,7,0,9,7],
[1,0,3,4,5,6,7,8,9,8],
[1,2,3,4,5,6,7,8,9,9]]
print reduce(lambda res, x: res*x, [el[i] for i, el in enumerate(matr) if el[i] > 0], 1)
print reduce(lambda res, x: res*x, [el[i] for i, el in enumerate(matr[::-1]) if el[i] > 0], 1)
>>51030
864