2017-07-06 31 views
1

我有這樣的僞代碼:np.append當值中的一個可能是空的或無

a = np.zeros([3,3]) 
b = np.zeros([3,3]) 
c = np.append(a,b,axis=0) 

但問題是,ab或者兩者都是無而非陣列,他們是。所以我這樣做:

def emptyappend(a,b): 
    if type(a)==np.ndarray and b is None: 
     return a 
    elif type(b)==np.ndarray and a is None: 
     return b 
    elif type(a)==np.ndarray and type(b)==np.ndarray: 
     return np.append(a,b,axis=0) 
    else: 
     return None 

這看起來真醜,不是很「Python化」,但我不能想出一個簡單的方法來做到這一點...任何想法?

+0

的Python的事情是收集數組到一個列表,並與連擊加入他們的行列。 'np.append'被誤稱並被濫用。 – hpaulj

+0

它爲什麼被錯誤命名?它用於追加指定的軸 –

+1

它提醒人們列表太多。請'np.source(np.append)'來查看它的代碼。 – hpaulj

回答

1

可以追加數組只有在條件匹配,否則返回一個兩個短路與or

def emptyappend(a, b): 
    if type(a) is np.ndarray and type(b) is np.ndarray: 
     return np.append(a, b, axis=0) 
    return a or b 
+0

是不是第一次2測試沒有必要,如果我做其他2測試? –

+0

@OferSadan你說得對。類型檢查應該處理這些。 –

+0

謝謝,這正是我一直在尋找的! –

相關問題