Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python如何使用numpy aply_沿_轴将参数放入函数_Python_Numpy - Fatal编程技术网

python如何使用numpy aply_沿_轴将参数放入函数

python如何使用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

我想把这个函数应用到矩阵中的每一列。我想使用带有参数的函数,但我不知道怎么做,我尝试过的事情以错误告终

代码我是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 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也会有所帮助