Я пытаюсь удалить все значения бесконечности и NaN в наборе данных, используя следующий код:
#loading data
data_path = os.path.join('/home/~/Desktop/~/~/rf_recordings', 'WiFi_1.iqt')
nframes = 644571
iqdata = iqtools.GRData(data_path, fs = 5.12e+007, center=2.4415e+009)
iqdata.read_complete_file()
x_data = iqdata.get_spectrogram(nframes, lframes=1)
#trying to replace each inf and -inf into nan, then replace nan with mean value of x_data
df = pd.DataFrame(data = x_data)
df.replace([np.inf, -np.inf], np.nan)
df = np.nan_to_num(df, nan = np.mean(x_data[1]))
print(df)
Но полученный результат показывает, что исходные NaN были изменены на np.mean(x_data[1])
, но изменение inf
в nan
не работает, как можно видеть следующим образом:
До
tensor([[[[0.0000e+00, 0.0000e+00, 0.0000e+00]]],
[[[0.0000e+00, 0.0000e+00, 0.0000e+00]]],
[[[0.0000e+00, 0.0000e+00, 0.0000e+00]]],
...,
[[[ nan, nan, inf]]],
[[[2.5295e-38, nan, nan]]],
[[[ nan, nan, nan]]]])
После
tensor([[[[0.0000e+00, 0.0000e+00, 0.0000e+00]]],
[[[0.0000e+00, 0.0000e+00, 0.0000e+00]]],
[[[0.0000e+00, 0.0000e+00, 0.0000e+00]]],
...,
[[[5.2155e-03, 5.2155e-03, inf]]],
[[[2.5295e-38, 5.2155e-03, 5.2155e-03]]],
[[[5.2155e-03, 5.2155e-03, 5.2155e-03]]]])
Есть ли способ, которым я могу изменить / улучшить, пожалуйста?