2014-02-28 58 views
1

我需要的是這樣的NumPy的創作fromfunction

def qqq(i,j): 
    if i+j>2: 
     return 0.5 
    else: 
     return 0 
n=3 
dcdt=np.fromfunction(lambda i,j: qqq(i,j)*i*j, (n,n), dtype=int) 

,但更復雜的QQQ。但它會導致錯誤「具有多個元素的數組的真值不明確,請使用a.any()或a.all()」。我知道問題是該函數被調用一次。我如何使用函數中的「if-elif-else」結構來創建這樣的數組?

回答

2

你應該把你的qqq功能到是這樣的:

def qqq(i, j): 
    return np.where(i + j > 2, 0.5, 0) 

詳見np.where's docs