Вы можете использовать numpy meshgrid () для парных вычислений пользовательских функций, например:
grid = np.meshgrid(list_num,list_num, sparse=True)
>>> grid
[array([[2, 4, 9, 1, 7]]), array([[2],
[4],
[9],
[1],
[7]])]
>>> def myFunc(x,y):
... return x+y**x/x+2
>>> z=myFunc(*grid)
>>> z.shape
(5, 5)
>>> z
array([[ 6.00000000e+00, 1.00000000e+01, 6.78888889e+01,
5.00000000e+00, 2.72857143e+01],
[ 1.20000000e+01, 7.00000000e+01, 2.91381111e+04,
7.00000000e+00, 2.34957143e+03],
[ 4.45000000e+01, 1.64625000e+03, 4.30467320e+07,
1.20000000e+01, 6.83290286e+05],
[ 4.50000000e+00, 6.25000000e+00, 1.11111111e+01,
4.00000000e+00, 9.14285714e+00],
[ 2.85000000e+01, 6.06250000e+02, 4.48374511e+06,
1.00000000e+01, 1.17658000e+05]])