python如何使用numpy aply_along_axis将参数放入函数中

use*_*836 5 python numpy

我想将函数应用于矩阵中的每一列.我想使用带参数的函数,但我不知道如何做,我尝试的事情以错误结束.

代码我跑了

import numpy as np

M = np.array([[1,2,3,4],
              [1,2,3,4],
              [1,2,3,4],
              [1,2,3,4]])

def my_function(arr, arg="default"):
    print arg
    return arr

def my_function_allong_axis(M, argument):
    return np.apply_along_axis(my_function, axis=0, arr=M, arg=argument)

my_function_allong_axis(M, "something else")
Run Code Online (Sandbox Code Playgroud)

这将产生TypeError:apply_along_axis()得到一个意外的关键字参数'arg'

use*_*836 3

解决方案:

def my_function_allong_axis(M, argument):
    return np.apply_along_axis(my_function, 0, M, argument)
Run Code Online (Sandbox Code Playgroud)

关键字参数是问题所在,因为旧的 numpy