Ну, как сказал заголовок.Я так стараюсь просто использовать Numpy для нормализации набора данных.
Набор данных должен выглядеть следующим образом:
class,Alcohol,Malic acid,Ash,Alcalinity of ash,Magnesium,Total
phenols,Flavanoids,Nonflavanoid phenols,Proanthocyanins,Color
intensity,Hue,OD280/OD315,Proline
1.0,14.23,1.71,2.43,15.6,127.0,2.8,3.06,0.28,2.29,5.64,1.04,3.92,1065.0
,13.2,1.78,,11.2,100.0,2.65,2.76,0.26,1.28,4.38,1.05,3.4,1050.0
1.0,13.16,2.36,,18.6,101.0,2.8,3.24,0.3,2.81,5.68,1.03,3.17,1185.0
1.0,14.37,,2.5,,,3.85,,,,7.8,,
1.0,13.86,1.35,,16.0,98.0,2.98,,0.22,1.85,7.22,1.01,3.55,1045.0
1.0,14.1,2.16,,18.0,,2.95,,0.22,2.38,5.75,1.25,3.17,1510.0
,14.12,1.48,,16.8,95.0,2.2,2.43,0.26,1.57,5.0,1.17,2.82,1280.0
1.0,13.75,1.73,,16.0,89.0,2.6,2.76,0.29,1.81,5.6,1.15,2.9,1320.0
1.0,14.75,1.73,,11.4,91.0,3.1,3.69,0.43,2.81,5.4,1.25,2.73,1150.0
1.0,14.38,1.87,2.38,12.0,102.0,3.3,,0.29,2.96,7.5,1.2,3.0,1547.0
,13.63,1.81,2.7,17.2,112.0,2.85,2.91,0.3,1.46,7.3,1.28,2.88,1310.0
Есть 14 функций и 100 данных.Я пытаюсь удалить строки с отсутствующим классом И удалить строки с 4 отсутствующими объектами.
Хорошо, я думаю, что проблема ясна, и вот что я сделал:
Удалитестроки с отсутствующим элементом класса:
remove_nan = data[~np.isnan(data).any(axis=1)]
Удалите строки с отсутствующим элементом класса и 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)
Я полагаю, чтобы получить некоторые значения обратно, вместо этого я получил ноль
[]
[]
[]
Что мне здесь не хватает?Пожалуйста, просветите меня.