Numpy apply_along_axis function
numpy, python
Solution
the `*args` in the signature `numpy.apply_along_axis(func1d, axis, arr, *args)` means that there are some other positional arguments could be passed.
If you want to add two numpy arrays elementwise, just use `+` operator:
In [112]: test_array = np.arange(10)
...: test_array2 = np.arange(10)
In [113]: test_array+test_array2
Out[113]: array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
Remove the keywords `axis=`, `arr=`, `args=` should also work:
In [120]: np.apply_along_axis(example_func, 0, test_array, test_array2)
Out[120]: array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
Problem
I am trying to use numpys apply_along_axis with a function who needs more than one argument. ``` test_array = np.arange(10) test_array2 = np.arange(10) def example_func(a,b): return a+b np.apply_along_axis(example_func, axis=0, arr=test_array, args=test_array2) ``` In the manual: http://docs.scipy.org/doc/numpy/reference/generated/numpy.apply_along_axis.html there is the parameter args for additional parameters. But if I try to add that parameter python returns an error: *TypeError: apply_along_axis() got an unexpected keyword argument 'args'* or if I don't use args an argument is missing *TypeError: example_func() takes exactly 2 arguments (1 given)* This here is just an example code and I know I could solve that in different ways like using numpy.add or np.vectorize. But my question is if I can use numpys apply_along_axis function with a function which uses more than one argument.