【问题标题】:Filter Numpy Array with optional argument使用可选参数过滤 Numpy 数组
【发布时间】:2021-02-08 10:42:01
【问题描述】:

我正在构建一个函数,它应该根据输入准备我的数据。变量x_imp 包含对哪些特征很重要的索引。但是有时我仍然需要所有功能,所以如果 'x_imp = None' 什么都不会发生。

我的解决方案是这样的(这不是整个函数,只是输入):

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)

如何避免这个问题?

【问题讨论】:

    标签: python numpy indexing


    【解决方案1】:

    这是因为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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 2020-02-13
      • 2021-04-17
      • 1970-01-01
      • 2013-04-22
      相关资源
      最近更新 更多