您的位置:首页 > 互联网

Python脚本中的bug,可能影响了数百项学术研究

发布时间:2019-10-25 14:16:31  来源:互联网     背景:

  Python作为一种功能强大且通用的编程语言而广受好评,它具有非常清晰的语法特点,适用于科学计算生态,在数据分析、交互、可视化等方面。

  不久前,夏威夷大学的化学研究人员发现,用于化学数据计算分析的一组Python脚本编程有误,该脚本的不同计算机操作系统中运行会产生不同的结果。在计算分析蓝藻实验的结果时,研究人员 Philip Williams 等人发现,通过Python 脚本跑出来的实验结果,因操作系统而异。这导致这些研究人员对已发表的150 多项化学研究论文结果产生了怀疑。

  这份脚本名为“Willoughby-Hoye”,脚本大约有1000行,它自2014年开始使用,用来计算核磁共振图谱的化学位移值。研究人员发现在 macOS Mavericks和Windows 10 运行的结果是相同的(173.2),也在研究人员的预想中,但在 macOS Mojave 和 Ubuntu 上却不相同(分别为172.4和172.7),几个结果看起来差不多,但在科学研究领域,对精度要求很高,看似接近的数字起止相差很大。

  那么为什么出现这类结果呢?

  这份脚本出现的 bug,与我们印象中的 bug 很不同,bug通常在任何地方都会有相同错误结果,而不只是在某些特定的环境中。经过检查,问题锁定在数据的检索方式,每次运行的数据都存储在两个文件中,文件按文件名成对检索,并成对处理。关键在于,检索文件的顺序因操作系统而异。只要文件匹配,就能得到正确的结果。如果不是,将处理来自两次不同运行的数据。

  此前,许多新闻报道中认为罪魁祸首是Python标准库模块 glob 模块,该脚本使用Python的glob模块来查找符合特定格式的文件路径名——基于glob的结果去生成读取文件列表。但是glob的结果又取决于操作系统的文件返回值。于是脚本的计算结果会受到文件处理顺序的影响。在Python 文档中关于 glob 模块的描述如下:

  glob模块根据Unix shell使用的规则查找与指定模式匹配的所有文件路径名,最终结果以任意顺序返回。

  所以这并不是 bug, glob 的结果是任意顺序返回的,它并没有按照指定的顺序返回结果。这错不在Python,而在于编写这份Python 脚本的人。该脚本的作者应该在代码中定义期望的排序行为,以确保一致性。如果是一个好的程序员,在详细阅读文档后,他们能够注意到文档中的说明(例如 glob 的返回结果是任意的),从而在编写代码时考虑到它。这个事情也告诉我们,好的编程技巧相当重要,尤其是当应用到科学计算这类严谨的研究中,失之毫厘,必然差之千里。

  Williams 等人发现了这个问题后,为该代码添加了必要的排序代码。他希望科学家们更加关注实验的计算部分,至于该脚本问题影响到其他论文研究结果有多少,他也难以得出定论。

  一般来说,代码并不是一篇学术论文中最被关注的点。所以说,计算机学界及其他领域学界往往不会对代码质量过分深究。这也导致,不管是学术研究者还是业界人士,都能感觉到「学术原型代码」和「工业级别代码」之间的巨大差异。

  不过相比于工业界的代码,学术论文中代码bug的影响毕竟还是有限的。

特别提醒:本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。


返回网站首页

本文评论
普仕英才青岛办公室迁址,蜂巢式合伙人机制点亮岛城
2019年10月,秋高气爽,硕果将至。为配合业务的快速扩张和团队的不断壮大,普仕英才青岛办公室正式......
日期:10-23
工业互联网如何赋能高端制造?
2019年,工业互联网首次进入政府工作报告,2019政府工作报告专门提及“打造工业互联网平台,拓......
日期:08-18
一搜即达:微信小程序“功能直达”开放
昨天,微信“功能直达”正式开放,用户微信搜一搜功能词,搜索页面将呈现相关服务的小程......
日期:09-29
用科特勒VCR模型剖析优信二手车:以顾客价值为核心的增长逻辑
Twitter的联合创始人埃文·威廉姆斯说过这样一段话:...
日期:11-01
百亿级MCN产业链挖掘:立昂技术、万兴科技等有望承接新利好
受到近期疫情影响,人们的工作与生活方式发生不小改变,这背后中国的科技互联网产业也在加速变革。......
日期:02-24
微众银行大力发展高新科技,科技人员占比50%以上
高新科技,一直是现代经济、医学、金融等高端产业链的核心,微众银行在2017年10月获得了国家高新技术......
日期:03-21
华为牵头完成AII智能物联模型特设组工作规划
日前,AII智能物联模型特设组第一次工作会议在北京顺利召开。本次会议由华为和中国信息通信研究院牵......
日期:01-08
中国联通喜提eSIM 联手京东要发起一场智能设备革命?
说到SIM卡,大概所有人都不会陌生,一张小小的卡片,便承载了每个人与“世界”联络的重任......
日期:03-29
线上机会迎来爆发!MONO流量矿机加速与赋能2020
尽管受到了疫情了影响,但是国内很多公司依然于2月3日起恢复了日常工作,尤其是 IT科技相关的。MONO流......
日期:03-09
鸣盏养生壶:养颜祛湿茶使你“人面桃花相映红 ”
敷着面膜“修仙”,早晨起来面色憔悴如黄花,接着喝杯咖啡,这似乎是都市人的常态,但长......
日期:12-02
博观而约取 厚积而薄发 创芯慧联致力于国内小基站市场
12月11日,这一天的北京寒风依旧却也阳光明媚,创芯慧联总经理倪海峰一行人接受了媒体专访,对目前5......
日期:12-16
学习软件 VS 书面作业 纸质作业真的更合理吗
随着互联网对各行各业的深度渗透,一些行业的发展模式及形态都已随之发生翻天覆地的变化,教育行业......
日期:09-30
16寸MacBook Pro即将发布:果粉看完会心动
据外媒最新消息称,苹果已经做好了发布16英寸MacBook Pro的准备了,其应该会在本月推出。...
日期:11-05
奢批——供应链技术打造品质海外奢侈品购物平台
近年来,随着中国经济的平稳增长,人们对奢侈品的追求越来越广泛,中国奢侈品消费趋势蒸蒸日上,80......
日期:06-24
华为云依托AI等新兴技术 携手园区保障安全复工
近日,全国各地有不少企业开始进入复工的阶段。为了避免园区内上下班人员聚集、人员未佩戴口罩等情况......
日期:02-18
雷军称小米10已达到目标 未来高端旗舰会更强
北京时间3月27日消息,今年2月份小米正式公布了旗舰机小米10系列。今天下午,小米公司CEO雷军回顾了......
日期:03-28
送餐机器人过节忙 五一小长假5天接待1600桌顾客
刚刚过去的五一小长假,被疫情压制的消费欲望迎来了一波复苏。 剧餐饮机器人头部企业擎朗智能的公布“五一”小...
日期:05-06
总裁夫人手撕张大奕,阿里调查蒋凡与如涵间无利益输送关系!
对于吃瓜群众们来说,唯有八卦新闻最值得关注,尤其是出轨、小三这类的新闻大家更为感兴趣,尤其是......
日期:04-28
数知科技斩获“金鼠标10周年 数字营销标杆公司”大奖
近日,“点拾成金,风向十年”,第十届金鼠标数字营销大赛在北京隆重举行!由北京大学新媒......
日期:05-27
花式营销 实力霸屏!看美的空调如何搭上了“直播带货”的快车
公益直播,明星带货、企业总裁个人直播首秀……从农产品、家电到小商品,直播带货俨然......
日期:05-29