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

2024-10-01 09:18:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把函数应用到矩阵中的每一列。我想使用带参数的函数,但我不知道如何去做,我尝试的事情以错误告终。在

代码我是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\u along_axis()获得意外的关键字参数“arg”


Tags: 函数参数returnmydefnpargfunction
2条回答

您没有将“arg”参数传递给“apply_axis”中的“my_function”,因此它将始终打印默认值。 我这样调整了你的代码,它就可以正常工作了:

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

相关问题 更多 >