跳转至

人生苦短,我用Jupyter

原文发在微信公众号

诚如标题,一款好用的IDE对于编程来说太重要了!!而在芸芸众IDE中,jupyter无疑是一颗super star.

当然,一门好用的编程语言也是很重要的

人生苦短,我用python

敬请期待

我们这个系列的推文将从各个方面来介绍jupyter(主要是jupyter notebook)以及它的使用方法,预计将会包括以下内容:

  • 1、jupyter简介(本文)
  • 2、jupyter nb的基本使用
    • 安装及个性化配置
    • 插件
    • notebook的书写
      • 代码单元格
      • markdown单元格
      • 其他单元格
    • notebook的导出
  • 3、jupyter nb的进阶使用
    • ipython介绍
    • 安装其他kernel
    • magic command
    • 远程连接、多人协同
  • 4、markdown和latex基础(番外)

jupyter的毒

我中了jupyter的毒,每次遇到编程项目就忍不住点开它,我控制不住自己。每每我想改过自新,就会发现jupyter的新功能,就这样不断深陷其中,不能自拔。终于到了某一天,仅仅自己使用jupyter已经不能满足我了,于是我开始疯狂向别人安利。我不知道这样的后果,但是我就是这样做了,希望您没事儿!

什么是Jupyter

key words

官网(点击可跳转)的一句话介绍——

Free software, open standards, and web services for interactive computing across all programming languages

提到了几个关键词:免费、开放的标准、web服务、交互式编程、多编程语言。

我这里主要提一下web服务和交互式编程

web服务

这里所说的web服务指的是jupyter的实现方式。用户启动jupyter相当于在本地建立了一个web服务器,然后就可以通过浏览器访问相应的网址,进而使用jupyter。

所以jupyter的一切都是基于web技术的,类似的软件也有很多,例如VScode的web服务版:code server

基于这样一个原理,那么我们很容易就可以实现远程访问,只要你把对应的web端口开放给互联网。也可以实现多人协同,因为作为一个网页当然可以多人同时访问。再进一步我们可以用Docker快速部署相应的环境……

交互式编程

交互式编程区别于脚本式编程,前者代码是一行一行运行的,后者则是以一个文件为单位运行的。

例如下面最简单的python代码(巧的是这句话在R语言中也是合乎语法的):

print("Hello world!")
我们可以在交互式运行环境单独运行这一句话

也可以把这句话写入python脚本.py文件,然后运行整个文件。

这两种方式没有孰优孰劣,但是用途迥然。

交互式编程尤其适合碎片化的探索过程,例如在数据分析的前期进行数据的摸索、整理等;另外也特别适合在学习编程的过程中使用,因为每一行代码都是相对独立的,可以单独理解,配合jupyter notebook可以写出可读性很强的文档。

脚本式编程则适合搭建大型项目,毕竟文件之间的依赖关系只能通过.py的脚本构建。

在我一般的工作流中,交互式编程是探索的过程,而脚本式编程则是整合代码的过程。每一个项目难免遇到各种问题,一开始就写在一个.py脚本里,比较难调试。当项目调试通畅之后,把代码整合到脚本中可以更加简洁地呈现。

有点像数学两大巨人欧拉高斯,他们都很强,但是学术风格迥异。欧拉喜欢在论文中留下思考的痕迹、保留推演的过程,读他的著作往往让人受益良多;然而高斯喜欢抹去思考的痕迹、只留下漂亮的结果,读他的著作虽然也会感叹其精妙绝伦却难以学到很多。

想必作为学习者,绝大部分适合我们期待看到的是一份欧拉式的详尽文档,而不是孤零零的一个高斯式的.py脚本文件。

但是不得不说,python自带的交互式环境还是非常难用的,于是ipython应运而生!

ipython加入了许多新功能,属于是开天辟地级别。而后jupyter notebook在此基础之上更进一步,就成为了现在的样子。

项目历史

官网直接截的图,感兴趣的可以仔细逛逛官网。

概念图

这是官网的封面图,其中可以看到诸如Python、C#、R、VB、JS、Lua……超级多编程语言的图标。这也显示出jupyter强大的包容性,你可以用它~~快乐地~~撸各种语言的代码。

官网再往下滑,你就可以看到jupyter的几大产品:

Jupyter Lab

未来jupyter的主力软件,但是现阶段还不是那么好用,属于一款战未来的产品。

Jupyter Notebook

现阶段jupyter的主力软件,简直不要太好用。也是我们这个系列介绍的主角。

下面列举了四个特点,分别是多语言、易分享、交互式输出、大数据工具集成。

Jupyter Hub

没用过,现在怎么什么阿猫阿狗都有Hub,什么Github、Dockerhub、Po……Hub

快来用

总而言之,作为当下最热门的python IDE之一,jupyter有其独特的魔力。加之jupyter对其他语言的广泛支持,她已经成为我生活中不可或缺的一份子了!

希望通过这一系列推文,你也能领略到她的魅力!

此致。


最后更新: 2024-01-17 19:44:12
创建日期: 2022-07-24 22:16:33

评论