2015-02-11 60 views
4

我想將函數應用到矩陣的每一列。我想用參數來使用函數,但我不知道如何去做,我嘗試過的東西以錯誤結束。蟒蛇如何把參數與numpy函數aply_along_axis

代碼我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") 

這將產生類型錯誤:apply_along_axis()得到了一個意想不到的關鍵字參數 'ARG'

+0

在你的註釋代碼你寫了my_fucniton_along_axis,拼寫錯誤;也許這會導致錯誤? – 2015-02-11 11:05:56

回答

3

解決方案:

def my_function_allong_axis(M, argument): 
    return np.apply_along_axis(my_function, 0, M, argument) 

關鍵字參數是問題,因爲老numpy的的

-1

你沒有通過 「ARG」 參數設置爲 「創建my_function」 在「apply_along_axis」,所以它總是會打印默認值。 我調整你的代碼,因此,它可以作爲你想:

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

TypeError:apply_along_axis()得到了一個意外的關鍵字參數'arg' – user2173836 2015-02-11 12:19:43

+0

你能發佈你正在運行的整個代碼嗎?我沒有收到錯誤。 您是否將變量名稱從arg更改爲第二個函數中的參數? 另外,你使用哪個版本的numpy? – 2015-02-11 12:54:51

+0

與上面相同的代碼。我只是在第二個函數中將參數更改爲參數。 Numpy版本1.6.2 – user2173836 2015-02-11 13:14:11