基于Numpy实现筛选标签为1且第一特征非负样本的函数
Numpy样本筛选函数实现
要实现满足需求的函数,我们可以利用Numpy的布尔索引特性高效筛选样本,具体代码如下:
import numpy as np def preprocessing_matrix(samples, labels): # 将输入转换为Numpy数组,兼容列表类输入 samples = np.asarray(samples) labels = np.asarray(labels) # 生成标签为1的掩码 label_condition = labels == 1 # 生成第一特征(第0列)非负的掩码 feature_condition = samples[:, 0] >= 0 # 合并两个条件,仅保留同时满足的样本 valid_samples = samples[label_condition & feature_condition] return valid_samples
代码说明
- 输入兼容:用
np.asarray转换输入,确保无论传入列表还是Numpy数组都能正常处理 - 条件掩码:分别生成两个条件的布尔数组,再通过
&(逻辑与)合并,得到同时满足两个条件的样本索引 - 高效筛选:直接用布尔掩码索引样本矩阵,这是Numpy中最高效的筛选方式之一
测试验证
# 构造测试数据 test_samples = [[-1, 3], [2, 5], [4, 1], [-3, 2]] test_labels = [1, 1, 0, 1] # 调用函数 filtered = preprocessing_matrix(test_samples, test_labels) print(filtered) # 输出结果:[[2 5]]
内容的提问来源于stack exchange,提问作者Sie. Theos
相关产品推荐
相关产品推荐

