这是我的代码:
with open(r'filename.dat') as f:
for line in itertools.islice(f, 19, None):
line = line.strip()
columns = line.split()
lam = columns[0]
lam1 = np.array(lam)
flux = float(columns[1])
flux1 = np.array(flux)
data = np.column_stack((lam1,flux1))
data = data[~np.isnan(data).any(axis=1)]
print(data)
我收到此错误:
TypeError:输入类型不支持ufunc'isnan',并且根据强制转换规则“ safe”,不能将输入安全地强制转换为任何受支持的类型
答案 0 :(得分:0)
您可以使用numpy函数genfromtxt更轻松地导入数据,然后使用简单的切片符号操作删除NaN:
data = np.genfromtxt('filename.dat')
data = data[~np.isnan(data)]
这样,当您导入数据时,它已经是ndarray
,并且numpy操作将更易于应用。然后,使用切片符号来选择不是~
NaN np.isnan()
的行。