при условии, что ваша функция может быть применена к массиву-пустышкам, и, позволяя вашим значениям nk быть массивом (a, N), вы можете просто применить два операнда вместе как prod(1).sum()
, например,
import numpy as np
a = 10
N =3
nlist = np.repeat(np.arange(N), a).reshape((N ,a)).T # [[0, 1, 2], [0,1,2], ...
f = lambda x: 2 * x + 1
result = f(nlist).prod(1).sum()
print(result)
>> 150
сравнение:
prod = 1
result = 0
for i in range(a):
prod = 1
for k in range(0,N):
prod = prod*f(nlist[i][k])
result = result+prod
print(result)
>> 150