[英]How to remove rows with nan from array in Python using np.isnan?
这是我的代码:
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”,不能将输入安全地强制转换为任何受支持的类型
您可以使用numpy函数genfromtxt轻松导入数据,然后使用简单的切片符号操作删除NaN:
data = np.genfromtxt('filename.dat')
data = data[~np.isnan(data)]
这样,当您导入数据时,它已经是一个ndarray
并且numpy操作将更易于应用。 然后用切片标志您选择不在行~
NaN的np.isnan()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.