You can use functools.partial
:
>>> from functools import partial
>>> array = np.arange(12).reshape(3,4)
>>> array
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>> func_list = [
partial(numpy.mean, axis=1),
partial(numpy.var, axis=0),
partial(numpy.std, axis=None)
]
>>> print(*map(lambda x:x(array), func_list), sep='\n')
[1.5 5.5 9.5]
[10.66666667 10.66666667 10.66666667 10.66666667]
3.452052529534663
Another way:
>>> func_list = [(numpy.mean, numpy.var, numpy.std),
({'axis':1}, {'axis':0}, {'axis':None})]
>>> print(*map(lambda f,kw: f(array, **kw), *func_list), sep='\n')
[1.5 5.5 9.5]
[10.66666667 10.66666667 10.66666667 10.66666667]
3.452052529534663
A slight variation of the above:
>>> func_list = [
(numpy.mean, {'axis':1}),
(numpy.var, {'axis':0}),
(numpy.std, {'axis':None})
]
>>> print(*map(lambda f,kw: f(array, **kw), *zip(*func_list)), sep='\n')
[1.5 5.5 9.5]
[10.66666667 10.66666667 10.66666667 10.66666667]
3.452052529534663