首页编程jupyter Jupyter创建一个字符串

jupyter Jupyter创建一个字符串

编程之家2024-04-0318次浏览

一、jupyter是啥

jupyter全称是jupyternotebook,是一个使用人比较少的python编辑器。但是它具有交互式、富文本、在线测试、轻量化等等其他编辑器没有的优点,它和其他编辑器最大的区别就是它是一个使用浏览器进行编辑的IDE。

jupyter Jupyter创建一个字符串

二、jupyter和spyder的区别

Jupyter和Spyder是两个常用的Python集成开发环境(IDE),它们有一些区别,如下所示:

1.用户界面:Jupyter提供了基于Web的用户界面,可以在浏览器中运行,并以笔记本的形式展示代码、图像和文本。而Spyder则是一个传统的桌面应用程序,提供了类似于传统IDE的用户界面,包括代码编辑器、变量查看器、控制台等。

2.交互性:Jupyter的主要特点是交互性,可以逐个单元格地执行代码,并即时查看输出结果。这对于数据分析、可视化和教学非常有用。而Spyder也支持交互式开发,但它更注重代码编辑和调试功能。

3.代码执行方式:Jupyter以单元格为单位执行代码,每个单元格可以独立执行。这种方式使得Jupyter非常适合探索性编程和文档编写。而Spyder则以整个脚本文件为单位执行代码,类似于传统的Python脚本开发方式。

4.扩展性:Jupyter支持多种编程语言的内核,包括Python、R、Julia等,可以在同一个笔记本中混合使用不同语言。而Spyder主要专注于Python开发,提供了丰富的Python开发工具和调试功能。

5.适用场景:Jupyter适用于数据分析、机器学习、可视化和教学等场景,特别是需要展示代码和结果的场合。而Spyder适用于传统的Python开发,包括编写脚本、开发应用程序和调试代码等。

jupyter Jupyter创建一个字符串

总的来说,Jupyter和Spyder在用户界面、交互性、代码执行方式、扩展性和适用场景等方面有所不同。选择使用哪个取决于您的具体需求和个人偏好。

三、为什么Jupyter是数据科学家们实战工具的首选

Jupyter是一款免费、开源的交互式web工具。研究人员可以利用该工具将软件代码、计算输出、解释文本和多媒体资源组合在一个文档中。计算笔记本已经发展了几十年,但是过去几年里,Jupyter特别受欢迎,更是成为数据科学家们实战工具的首选。个中原因如何?本文带你一探究竟。

数据科学

大型综合巡天望远镜(LargeSynopticSurveyTelescope,LSST)坐落在智利安第斯山脉帕穹山脊,计划2022年启用。它将自动探测南方的天空,每晚产生数兆字节的数据。为了处理这些数据,天文学家将要用到一个熟悉且日益流行的工具——Jupyternotebook。

Jupyter是一款免费、开源的交互式web工具,是一种计算笔记本(computationalnotebook)。研究人员可以利用它将软件代码、计算输出、解释文本和多媒体资源组合在一个文档中。计算笔记本已经发展了几十年,但是过去几年里Jupyter特别受欢迎。因为它的架构经过重新设计,允许notebook「说」几十种编程语言,所以深受开发人员的喜爱。而根据其共同创始人FernandoPérez的说法,这一点更体现在它的名字中:Jupyter——Julia(Ju)、Python(Py)、R。

对代码共享网站GitHub的一项分析显示,截至2018年9月,Jupyter上公开的notebook超过了250万份,而2015年这一数字仅为20万左右。Pérez表示,Gmail和GoogleDocs等web软件的改进是驱动其使用量增长的一个原因;Python和数据科学的成熟也是其中一个原因,尤其是notebook可以轻松地访问远程数据,因为有些数据可能无法下载(比如LSST的数据)。针对Jupyter基于云的能力,Pérez表示,很多情况下,把计算机移动到数据比将数据移到计算机内要容易得多。因为这种架构相当于告诉读者数据在哪里,而且还提供了一台电脑。

jupyter Jupyter创建一个字符串

华盛顿特区乔治·华盛顿大学的机械和航空工程师LorenaBarba说,对于数据科学家来说,Jupyter已经成为事实上的标准。而负责协调LSST数据管理团队的西雅图华盛顿大学天文学家MarioJuri?则表示,「我从未见过这么快的迁移,真是太好用了!」

数据勘探

可计算的notebook本质上是用于科学计算的实验室notebook。比如说,研究人员没有将DNA凝胶黏贴在实验室协议旁边,而是嵌入代码、数据和文本来记录他们的计算方法。圣路易斯·奥比斯波加州理工州立大学的Jupyter联合创始人BrianGranger说,这种做法的结果是产生了「计算叙事」——一种允许研究人员用分析、假设和推测补充其代码和数据的文件。

对于数据科学家而言,这种格式可以推动探索。Barba表示,notebook是一种交互式计算方式,在这种环境中,用户可以执行代码,观察结果,修改并重复研究人员与数据之间的一种迭代对话。它并不是这种对话的唯一载体,交互式Python解释器IPython(Jupyter前身IPythonNotebook的创建基础)也是一种载体。但notebook允许用户记录这些对话,并在「主题、理论、数据和结果之间建立更强大的联系」。

研究人员还可以用notebook为其软件创建教程或交互式手册。哈佛大学的系统神经科学家MackenzieMathis对DeepLabCut就是这么做的。DeepLabCut是其团队为行为神经科学研究开发的一个编程库。他们可以用notebook来准备手稿,或者作为教具。自2013年开始,Barba就在她所教的每门课程中实施了notebook。在2014年的一次主题演讲中,她还讲述了notebook让学生以课堂无法比拟的方式互动地参与课程并从中受益的经验。她说,「IPythonnotebook确实是科学和工程教学计算的一个杀手级应用程序。」

说我的语言

Jupyternotebook有两个组件。在前后端网页中,用户在矩形输入框中输入编程代码或者文本。然后浏览器把代码输送到后端内核,后端内核运行该代码并把结果反馈回来。据Pérez统计,已经有超过100个Jupyter内核被创建,支持数十种编程语言。正常来说,每个notebook只能够运行一个内核和一种语言,但存在工作区。例如,一个Demonotebook,支持Python、Julia、R和Fortran。

重要的是,内核不需要驻留于用户的计算机。当LSST的未来用户使用Jupyternotebook来分析数据时,代码会在位于伊利诺斯州的超级计算机上运行,提供台式机、笔记本无法比拟的算力。Notebook也可以在云上运行。例如谷歌的Colaboratory项目,为Jupyternotebook提供了以谷歌为主题的前后端。它使得用户能够协作、运行利用谷歌云资源的代码,例如图处理单元,可以把文档保存在谷歌Drive上。

Jupyter的最新版本是JupyterLab,于2018年1月作为测试版发布,它既能作为独立的安装包使用,又能作为免费Anaconda科学计算环境的一部分使用。

JasonGrout是加州旧金山金融服务公司Bloomberg的一名软件工程师,也是JupyterLab团队的一员。他将JupyterLab称为Jupyternotebook的「下一代web接口」,它通过拖放功能以及文件浏览器、数据查看器、文本编辑器和命令控制台扩展了人们熟悉的notebook的内涵。标准Jupyternotebook向每个notebook分配单独的内核,而JupyterLab创建了一个允许这些组件共享的计算环境。因此,用户可以在一个窗口中查看notebook,在第二个窗口中编辑一份所需的数据文件,在第三个窗口中记录所有的执行命令——所有窗口都在一个web浏览器接口中。

用户也可以对JupyterLab进行调整,使其适合自己的工作流程。例如,内置查看器用于查看图片、文本和CSV文件,但用户也可以构建自定义组件。这些组件可以展示基因组比对、地理空间数据等。参加Pérez的一名学员甚至还创建了一个用来展示3D大脑成像数据的组件。他表示,「显然,这完全是一个神经科学领域专用工具——Jupyter团队没有必要写这种东西。但我们提供了正确的标准,那个团队就可以在24小时之内写出一个来。」

还有两种工具增强了Jupyter的用途。一个是JupyterHub,这种工具允许机构向大量用户提供Jupyternotebook。Pérez任教的加州大学伯克利分校的IT团队已经部署了这样一个中心,Pérez利用该中心确保参加其数据科学课程的所有学生拥有相同的计算环境。他表示,「我们不可能管理800名学生的IT支持,帮助他们调试电脑,以及找出他们笔记本电脑安装程序后无法运行的原因;这根本行不通。」

另一个工具是Binder,这是一种开源服务,允许用户在web浏览器中的GitHub上使用Jupyternotebook,无需安装软件或任何编程库。用户也可以在谷歌云上执行Jupyternotebook,通过在GitHub上notebook里的URL之前键入或使用CodeOcean商业服务。9月份,CodeOcean为其基于云的代码共享和代码执行服务推出了一个新的用户接口,同样也基于Jupyter。

值得注意的问题

这种工具通过简化代码重用来实现计算再现性。但用户仍需知道如何正确使用notebook。

JoelGrus是华盛顿州西雅图艾伦人工智能研究所(AllenInstituteforArtificialIntelligence)的一名研究工程师,今年年初,他在纽约Jupyter开发者大会上做了一场主题为「我不喜欢notebook」(Idon'tlikenotebooks)的演讲。他说,他见过notebook不按预期运行时编程者受挫的样子,通常是因为他们无意中运行了无序的代码单元。他指出,在Jupyternotebook中将代码按逻辑整理出来非常困难,因此编程实践体验很差,它将代码分解成可重用的模块,并开发测试来确保代码正常工作。

Grus坦言,这些并非不可逾越的困难,但notebook在执行代码时的确需要规则:例如,将分析代码移到可以从notebook中调用的外部文件中,在notebook的顶部定义关键变量,定期重启内核以及自上向下地运行notebook。一位Twitter用户打趣道:「你得重启并运行所有程序,否则没办法用。」

这是Barba试图灌输给学生的一课。「上课第一天我就向学生解释说,他们可以以非线性的方式与notebook交互,这激发了他们巨大的探索能力,」她说。「但力量越大,责任越大。」

Verdant可能是一种有帮助的工具,它是Jupyter里面一个可以捕捉用户活动历史的插件。「作者构建了一个扩展,可以实现灵活的用户工作流程,同时捕捉执行的特定代码,以什么顺序以及在什么样的特定数据上,」加州州立理工大学Jupyter团队的成员CarolWilling表示。

JakeVanderPlas是谷歌的一名软件工程师,也是Colaboratory的成员之一,他表示,notebook就像锤子一样:他们可能被滥用,也并非适用于所有应用。但在数据探索和沟通方面,notebook表现出色。天文学界似乎同意这种说法。「大约六年前,还没有Jupyternotebook,现在我们却每天都在用它,」Juri?表示。

pdg格式(pdg是什么格式)摩托罗拉被收购(摩托罗拉收购是真的吗)