代码改变世界

Jupyter Notebook使用

2019-09-06 23:02  youxin  阅读(3408)  评论(0编辑  收藏  举报

不论你是刚开始学 Python,还是正在啃数据分析的骨头,对你来说,不断在各种命令行窗口和编辑器里切来切去,或者不断打开各种窗口查看 matplotlib 的输出之类的繁琐操作,一定是家常便饭了。哎呀,这都 8102 年了,除了又大又笨重的 IDE,难道就没有什么简单而直观的办法,让我们这些新手能管理和运行代码吗?

 

 

当然有啊,还是免费的咧!

 

这款神器就叫 Jupyter Notebook,它一定能拯救你于水深火热之中!

 

Jupyter Notebook 是一款 Web 应用,它能让用户将上面说的各种窗口里的东西,全部组合到一个可读性好,易于共享,且对新手友好的文档中。这个文档里可以包括:

 

● live code (e.g. Python code) 

可执行的代码,比如我们需要的 Python 代码

 

● visualizations 
可视化的数据库图表,或者代码执行之后生成的可视化效果,比如 matplotlib 输出的图像等

 

● explanatory text (written in markdown syntax) 

各种解释性文字,例如用 markdown 语法写的格式化说明文本,Latex写的数学方程等

 

因此,你可以方便地一边写代码,一边写许多带格式的注释文本,还能让运行结果实时在页面内显示出来。所以,Jupyter Notebook 很适合以下一些用途使用:

 

● 学习并尝试运行 Python 代码,观察其效果

● 数据处理和转换

● 数值模拟分析

● 统计建模

 

.

Jupyter Notebook 是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码、数学方程、可视化和 Markdown,其用途包括数据清理和转换、数值模拟、统计建模、机器学习等等。目前,数据挖掘领域中最热门的比赛 Kaggle 里的资料都是 Jupyter 格式。对于机器学习新手来说,学会使用 Jupyter Notebook 非常重要.

要运行 Jupyter Notebooks,只需输入以下命令就可开始使用!

 


jupyter notebook

 

执行上面命令之后, Jupyter Notebook 将在你的默认浏览器中打开,网址为:http://localhost:8888/tree

 

在某些情况下,它可能无法自动打开。这种情况下,你的终端或者命令提示符中将会生成一个带有令牌密钥( token key )的网址。要打开 Notebook,你需要将整个 URL(包括令牌密钥)复制粘贴到浏览器中。

 

Notebook 打开后,你会在顶部看到三个选项卡:Files(文件),Running(运行)和 Clusters(集群)。Files 基本上列出了所有的文件,Running 显示你当前已经打开的终端和Notebooks,Clusters 由 IPython parallel 包提供,用于并行计算。

 

修改Jupyter的默认目录:

jupyter notebook --generate-config

 

打开 jupyter_notebook_config.py 修改配置 c.NotebookApp.notebook_dir为自己的工作目录

c.NotebookApp.notebook_dir = 'E:/jupyter/'

 

找到Jupyter Notebook,右键该快捷方式,选择属性进行快捷方式的设置,修改快捷方式的“目标(T)”,把目标框里面末尾的%USERPROFILE%去掉,删除到.py后面就行,别删多了。如下图:

 

 

 

不删这一句的话,jupter会使用user profile(用户用户预置文件,即默认目录),之后无论你怎么改配置文件都不管用。所以,谨记!

 

(%USERPROFILE%这个路径比较特别,它不是一个普通的文件夹,而是用户配置文件的根目录,用户的所有特定数据,包括文件和注册表信息都保存在这里。)

 

▌键盘快捷键——节省时间并提高效率!

快捷键是 Jupyter Notebooks 最好用的功能之一。当你想运行任何代码块时,你只需要按下Ctrl + Enter 即可。Jupyter Notebooks 提供的键盘快捷键非常多,为我们节省了大量时间。

 

以下是我们挑选的一些快捷键,你在开始使用 Notebooks 时会经常用到这些快捷键。我强烈建议你阅读这些内容的时候一个一个地尝试一下这些快捷键。

 

Jupyter Notebook 提供了两种不同的键盘输入模式 - 命令和编辑。命令模式将键盘与 Notebook 命令绑定,并由具有蓝色左边距的带有灰色单元格边框来表示。编辑模式允许你将文本(或代码)输入活动单元格,并以绿色单元格边框表示。

 

使用 Esc 和 Enter 在命令和编辑模式之间跳转。现在就试试吧!

 

一旦进入命令模式(即没有活动单元格),就可以尝试以下快捷键:

 

  • A 键将在选中单元格上方插入新单元格,B 键将在选中单元格下方插入一个单元格

  • 要删除单元格,请连续按两次 D 键

  • 要撤消已删除的单元格,请按 Z 键

  • Y 键将当前的选中单元格变成代码单元格

  • 按住 Shift + 向上或向下箭头键可以选择多个单元格。在多选模式下,按 Shift + M 会合并选中的单元格

  • F 键会弹出 “查找和替换” 菜单

 

处于编辑模式时(在命令模式下按 Enter 键进入编辑模式),你会发现以下快捷键非常好用:

 

  • Ctrl + Home 转到单元格的开头

  • Ctrl + S 会保存你的工作

  • 和上面提过的一样,Ctrl + Enter 将运行你的整个单元格

  • Alt + Enter 不仅会运行你的单元格,它还会在下方添加一个新的单元格

  • Ctrl + Shift + F 打开命令选项板

 

要查看整个键盘快捷键列表,请在命令模式下按 H 或转到 Help 菜单栏下的 Keyboard shortcuts。请经常检查这些内容,因为经常会有新的快捷键被加进来。

 

我们还可以把单元格的类型从“代码(Code)”改成“文本(Markdown)”,这样你可以方便地用 markdown 语法写出带格式的注释或说明文本,方便你整理归纳代码,或是在数据分析时描述需要处理的数据信息等。

改了单元格类型之后,你会发现前面的 In [ ]: 标记不见了。你在这个单元格中输入 markdown 标记时,会自动解析成不同大小,不同格式的文字标记.

如果你点击一个单元格的周边空白处或是输出部分,你选中的这个单元格就进入了命令模式,左边的指示条是蓝色:

 

 

 

如果你点击代码区域,则单元格就进入编辑模式,光标将在你点击的位置闪烁,而左边的指示条也变成绿色,表示你正在编辑代码内容:

 

 

在编辑时,你可以按 ESC 键退出编辑模式,回到命令模式。

 

这两种模式的区别在于,在编辑模式下,代码编辑框接收你所有的键盘输入,让你对代码/文本进行编辑。而在命令模式下,Jupyter Notebook 页面能响应你的各种键盘快捷命令。

 

Jupyter Notebook 还有一个很酷的功能:记录点。你可以为当前的 notebook 文件创建一个记录点,保存当前文件的所有状态。创建记录点之后,你可以随时返回到当前的状态,撤销这期间做出的任何修改。

 

要创建一个新的记录点,你只需要在菜单栏上选择 File(文件)-> Save and Checkpoint(保存记录点)即可。点完之后,你就会在标题旁看到 Checkpoint 保存的提示:

 

 

如果你想要返回到之前的 Checkpoint,你只需要在菜单栏上选择 File(文件)-> Revert to Checkpoint(返回到记录点),并点击对应的记录点的时间戳即可。

Cell的四种功能

Cell有四种功能:Code、Markdown、Raw NBConvert、Heading,这四种功能可以互相切换。Code用于写代码,Markdown用于文本编辑,Raw NBConvert中的文字或代码等都不会被运行,Heading是用于设置标题的,这个功能已经包含在Markdown中了。四种功能的切换可以使用快捷键或者工具条。

Code用于写代码,三类提示符及含义如下:

提示符含义
In[ ] 程序未运行
In[num] 程序运行后
In[*] 程序正在运行

Markdown用于编辑文本,给出常用的Markdown用法:

其他非常用的用法需要时可以再查阅。

 

其他

(1)按tab键查看提示信息或者补全命令

(2)在一个库、方法或变量前加上 ?,就可以获得它的一个快速语法说明

(3)使用分号可以阻止该行函数的结果输出

 

Jupyter清理所有单元格输出

 

4.2.5 Cell

选项功能
Run Cells 运行单元内代码
Run Cells and Select Below 运行单元内代码并将光标移动到下一单元
Run Cells and Insert Below 运行单元内代码并在下方新建一单元
Run All 运行所有单元内的代码
Run All Above 运行该单元(不含)上方所有单元内的代码
Run All Below 运行该单元(含)下方所有单元内的代码
Cell Type 选择单元内容的性质
Current Outputs 对当前单元的输出结果进行隐藏/显示/滚动/清除
All Output 对所有单元的输出结果进行隐藏/显示/滚动/清除

 

%matplotlib inline

 

    • 这是 IPython 中定义的魔法函数(Magic Function),其意义是将那些用于matplotlib绘制的图显示在页面里而不是弹出一个窗口,因此就不需要plt.show()这一语句来显示图片,如下图所示:

       

       

    • 因为这是 IPython 中的命令函数,因此只能在 jupyter notebook中使用,在其他地方使用或者直接运行会报错
      ************************************************************************************************************
      IPthon 提供了功能强大,内建的Magic函数,定义为:IPython中将任何第一个字母为%的行视为 Magic Function的特殊调用,可以控制 IPython, 为其添加许多系统功能

https://www.jianshu.com/p/2dda5bb8ce7d

链接:

https://blog.csdn.net/guleileo/article/details/80490921

https://www.itcodemonkey.com/article/6025.html

https://blog.51cto.com/853056088/2162189