python如何使用numpy aply_沿_轴将参数放入函数
我想把这个函数应用到矩阵中的每一列。我想使用带有参数的函数,但我不知道怎么做,我尝试过的事情以错误告终 代码我是runnungpython如何使用numpy aply_沿_轴将参数放入函数,python,numpy,Python,Numpy,我想把这个函数应用到矩阵中的每一列。我想使用带有参数的函数,但我不知道怎么做,我尝试过的事情以错误告终 代码我是runnung 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 ar
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")
这将产生TypeError:apply_沿著_轴()得到一个意外的关键字参数'arg'您没有将“arg”参数传递给“apply_沿著_轴”中的“my_函数”,因此它将始终打印默认值。
我对您的代码进行了相应的调整,它可以按照您的要求工作:
def my_function_allong_axis(M, argument):
return np.apply_along_axis(my_function, axis=0, arr=M, arg=argument)
解决方案:
def my_function_allong_axis(M, argument):
return np.apply_along_axis(my_function, 0, M, argument)
关键词参数是问题所在,因为在你的注释代码中有一个旧的numpy,你写的my_funcniton_沿着_轴,拼写错误;也许这会导致错误?TypeError:apply_沿著_轴()得到一个意外的关键字参数'arg',你能发布你正在运行的整个代码吗?我没有错。您是否在第二个函数中将变量名从arg更改为argument?另外,您使用的是哪个版本的numpy?与上面的代码相同。我只是在第二个函数中将arg改为argument。Numpy版本1.6.2我认为Numpy版本可能是这里的问题,我使用的是1.9。如果查看函数-,您可以看到kwargs参数仅在版本1.9中可用。尝试使用:sudo pip install numpy——upgrade升级您是对的。我在回答中修正了它。升级numpy也会有所帮助