将数据集缩减为只包含具有特定质量的文件

2024-09-21 07:34:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于数据缩减的简短问题。我有大约1500个文件,我想删除那些不符合一定标准的。你知道吗

基本上,我是拟合高斯的数据集,这给了我一个平均值和半最大全宽。我只想选择的文件,其中给出了一个平均值在+/-1500和半最大全宽小于5000曲线。你知道吗

我本来打算使用if条件,但事实证明比我最初想象的要困难得多。你知道吗

到目前为止我所拥有的:

if FWHM <= 5000 and (-1600 <= mean <= -1500):
   return (send data to plotting function)
elif FWHM <= 5000 and (1500 <= mean <= 1600):
   return (send data to plotting function)
else:
   os.remove(os.path.join(path, f))

这似乎不管用,我想这也不是最好的办法。你知道吗

有什么建议吗?非常感谢。你知道吗

编辑:对不起,我应该澄清一下。我想要的文件包含一个平均值在-1600到-1500或1500到1600之间。稍后的想法将是将它们相互叠加,并确定它们是否是镜像对立面。抱歉给你添麻烦了。你知道吗


Tags: and文件to数据pathsenddatareturn
2条回答

你想要什么

FWHM <= 5000 and (-1500 <= mean <= 1500)

如果平均值在-1600和-1500之间,或者在1500和1600之间,而不是在-1500和1500之间,那么if结构将是真的,这正是您想要的,也就是说,它永远不会工作=)。你知道吗

您可以使用abs()进行简化,减少语句可能有助于诊断。也许打印出所有被删除的好文件,以确保所发生的是你所相信的。你知道吗

if FWHM <= 5000 and (1500 <= abs(mean) <= 1600):
   true_file = os.path.join(path, f)
   return (send data to plotting function)
else:
   if true_file == os.path.join(path, f):
       print 'I am deleting a GOOD file:', true_file
   os.remove(os.path.join(path, f))
   true_file = ''

编辑以添加诊断打印语句

相关问题 更多 >

    热门问题