簡體   English   中英

使用可選參數過濾 Numpy 數組

[英]Filter Numpy Array with optional argument

我正在構建一個 function 應該根據輸入准備我的數據。 變量x_imp包含對哪些特征很重要的索引。 但是有時我仍然需要所有功能,所以如果 'x_imp = None' 什么都不會發生。

我的解決方案是這樣的(這不是整個 function 只是輸入):

def get_train_data(x_cat, x_num,x_imp = None):
        x_cat = x_cat[:,x_imp]
        x_num = x_num[:,x_imp]
    return x_train

但這會改變數據的形狀。 例如,如果data.shape = (4, 5)那么data[:,None].shape = (4, 1, 5)

我該如何避免這個問題?

發生這種情況是因為None切片是np.newaxis的別名。 是否有理由不只添加顯式if語句?

def get_train_data(x_cat, x_num,x_imp = None):
    if x_imp is not None:
        x_cat = x_cat[:,x_imp]
        x_num = x_num[:,x_imp]
    return x_train

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM