删除缺少类的行以及具有4个以上缺少功能的行

时间:2018-10-05 07:47:42

标签: python numpy

好吧,正如标题所说。我非常努力地只使用Numpy对数据集进行归一化。

数据集应如下所示:

remove_nan = data[~np.isnan(data).any(axis=1)]

有14个要素和100个数据。我正在尝试删除缺少类的行,并删除具有4个缺少功能的行。

好的,我认为问题很明显,这就是我所做的:

删除缺少类功能的行:

class_index=14 #14 features
num_classes=3  # 1,2,3 classes
nan_indexes=np.isnan(data)
nan_counts=np.sum(nan_indexes,axis=1)
for class_value in range (0,num_classes):
     filtered_rows = [row for row, nan_count in zip(raw_data, 
                   nan_counts)] if row[class_index]==class_value and nan_count < 4]
     print(filtered_rows)

删除具有缺少类功能和4个缺少功能的行:

[]
[]
[]

我想找回一些值,相反我得到了空值

terminate-instances

我在这里想念什么?请赐教。

1 个答案:

答案 0 :(得分:0)

尝试data = np.array([i for i in data if len(i[~np.isnan(i)])>10])

列表推导用于挑选出具有10个以上非nan值的行(因此删除具有4个或更多缺失值的行)。然后将生成的2-d列表转换为numpy数组。