最出名的天文学家家最常用的是那样语言

最出名的天文学家家最常用的是那样语言... 最出名的天文学家家最常用的是那样语言

你对这个回答的评价是

}

在智利北部安第斯山脉高达2700米的塞隆·帕切翁山巅,美国的“大型综合巡天望远镜”(LSST)正在紧锣密鼓地施工着到2022年,也就是LSST正式投入使用的时候它将把30亿像素的相機对准太空,每晚完成30千兆的拍摄任务这会是人类研究宇宙暗物质的一大基础.

而为了处理望远镜每天自动生成的TB级数据,最出名的天文學家家们开始转向数据科学把数据科学家们熟悉且常用的一种工具——Jupyr notebook,纳入最出名的天文学家研究

Jupyter是一个免费的、开源的、交互式嘚网络工具,它是一个计算笔记本允许研究人员把软件代码、计算输出、注释性文本和多媒体资源集中在一个文档中。就历史来看计算笔记本已经在世上存在了几十年,但是直到几年前以Jupyter为代表的notebook才开始被技术人员广泛使用,并大受欢迎

当然,Jupyter的流行离不开用户和開发者社区的共同努力经过架构的重新设计和其他优化,现在它已经支持几十种编程语言——这也反映在名称变化上(Jupyter notebook原名I

上个月代碼托管平台GitHub发布了一份分析,指出当前公开的Jupyter notebook数量大约在250万份而在2015年,这个数字只有不到20万份Pérez认为这里面有应用程序、网络软件经過不断升级迭代,性能超越竞品的原因但更多应该归功于Python在科研领域的大面积应用和数据科学的成熟——尤其是当人们进行科学研究和數据分析时,发现远程数据过于庞大超出了笔记本电脑的访问上限,如LSST

在很多情况下,把接入数据比把数据输入计算机要容易得多Jupyter昰基于云的,只要你告诉我你的数据在哪里我就马上能在那儿给你台计算机。——Fernando Pérez

对于数据科学家来说Jupyter已经成为事实上的标配。而茬见识了这种工具之后华盛顿大学的最出名的天文学家家、负责协调LSST数据管理团队的马里奥·尤里奇也表示:“我从未见过这么快的迁移,真的是太棒了!”

类比来看,计算笔记本实际上就是用于科学计算的实验室笔记本只不过上面写的既不是用凝胶电泳分离DNA,也不是實验室指南而是嵌入代码、数据和文本来记录“实验者”的计算方法。公司联合创始人Brian Granger把它称为“计算叙事”——一个允许研究人员用汾析、假设和猜想来补充代码和数据的文件

这种工具能帮数据科学家极大地推进数据探索。notebook是交互式的用户可以在这种环境中运行代碼、查看发生的情况,然后重复这种发生在数据和研究人员之间的循环和迭代这是人和数据对话的一种途径,它允许用户记录这些对话建立起与主题、理论,数据和结果之间更强大的联系当然,Jupyter不是承载对话的唯一平台——它的前身IPython Notebook是一种交互式Python解释器也可以充当對话平台。

此外研究人员还可以用notebook为他们的软件创建教程或交互式手册,这也是哈佛大学系统神经科学家Mackenzie Mathis所做的尝试她和她的团队曾為神经科学研究开发了一个代码库,这允许他们把notebook作为手稿和教具用于教学而根据Barba——一名从2013年起就在每门课程中都用notebook教学的教授——嘚体验,她认为IPython Notebook是用于教授科学和工程计算的杀手级应用程序使她的学生能从中高效汲取课程知识。

提到编程编程语言最能挑动技术囚员神经。Jupyter notebook有两个组件用户在前端网页中的矩形单元格输入编程代码或文本,然后浏览器会将该代码传递给后端“内核”,由后端运荇代码并返回结果根据Pérez的统计,现在Jupyter内核的数量已经达到100多个支持上百种编程语言。这是个极大的优势因为通常情况下,每个notebook只能运行一个内核和一种语言即便存在变通的方法,也只局限在Python、Julia、R和Fortran这4种之间

重要的是,Jupyter的内核不需要驻留在用户的计算机上未来,当LSST的最出名的天文学家家用Jupyter notebook分析数据时他们的代码会在伊利诺伊州运行,由超级计算机提供普通台式机无法比拟的庞大算力notebook也可以茬云中运行,例如谷歌的Colaboratory项目就为Jupyter提供了一个以谷歌为主题的前端它允许用户进行协作、利用Google

今年1月,Jupyter推出下一代产品JupyterLab可作为独立软件包或作为免费的Anaconda科学计算环境的一部分。

Jason Grout是彭博社的软件工程师也是JupyterLab团队的成员之一。在他眼里JupyterLab是Jupyter notebook的“下一代Web界面” ——它扩展了原先notebook的概念,把文本编辑器、浏览器、数据文件查看器、文本编辑器、命令控制台及其他自定义的内容以标签的形式排列在工作区中一般Jupyter notebook会为每个notebook分配了各自的内核,而JupyterLab则是创建了一个允许共享这些组件的计算环境这意味着用户可以在一个窗口中查看notebook,在另一个窗口中編辑所需的数据文件并在第三个窗口中记录所有运行的命令 ——所有这些都在一个Web浏览器界面中进行。

用户还可以自定义JupyterLab以适应他们的笁作流它建立在可扩展系统之上,能提供新的主题、文件编辑器和查看器甚至可以显示基因组比对或地理空间数据等内容。为了方便鼡户自定义扩展Pérez还自制了一个教学视频,演示了如何创建了一个能显示3D大脑成像数据的组件

这是一个完全[神经科学]领域的特定工具,显然Jupyter团队不需要编写这些东西,但我们提供了正确的标准然后社区可以在24小时内学会怎么做并自己写一个。

此外依靠另两个工具,Jupyter的可用性也得到了大大加强其中一个是JupyterHub,这项服务允许机构向大量用户提供Jupyter notebook比如加州大学伯克利分校就用这种方法确保所有学生在所有课程下都拥有相同的计算环境。“我们不可能为800名学生一一提供IT支持帮助他们在安装失败时debug,这是不可行的”

另一个是Binder,一种允許用户在浏览器中使用GitHub上的Jupyter notebook、无需安装软件或任何编程库的开源服务

尽管Jupyter notebook通过简化代码促进代码复现,但作为使用者掌握 notebook的正确用法還是很重要的。

今年早些时候艾伦人工智能研究所的研究工程师Joel Grus在Jupyter开发者大会上发表了题为“I don’t like notebooks”的演讲。他指出当 notebook没有按预期运行時,程序员们往往会感到手足无措但出现这个问题的原因很可能是他们没有按顺序去运行代码块。Jupyter notebook的简便从某种程度上来说是助纣为虐它难以逻辑地组织代码,将其分解为可重用的模块并进行开发以确保代码正常工作。所以被惯坏的用户写出来的代码也越来越混乱不清

Grus承认,虽然这些都不是难以解决的问题但 notebook在执行代码时确实应该注意遵守规则,比如 把分析代码移动到可以从 notebook中调用的外部文件、茬notebook顶部定义关键变量以及 定期重新启动内核并从头开始运行notebook就像一名网友在Twitter上的打趣:“要么重新跑一遍,要么假装什么都没发生”

這也是Barba每次用notebook给学生上课时会提醒的一点:“从第一天起,我就对学生们说你们可以用非线性的方式使用notebook,这能方便你们进行探索但強大功能背后是要打下更扎实的基础。”

为了解决这个问题一个可能有用的工具是Verdant,这是个能捕捉用户历史行为的插件“作者构建了┅个扩展,它允许用户在里面部署灵活的工作流同时捕获用户运行的特定代码、运行顺序和具体数据。”

谷歌软件工程师兼Colaboratory团队成员Jake VanderPlas表礻Jupyter notebook就像锤子,它们很可能被误用也不适合所有领域,但对于数据探索和通信来说notebook确实是个好工具。最出名的天文学家界似乎非常认哃这个观点:“6年前我们的计算机里完全不存在什么Jupyter notebook,但现在每个人都爱它。”

}

我要回帖

更多关于 最出名的天文学家 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信