学Python,推荐你用Jupyter Notebook ?
Jupyter Notebook 是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码、数学方程、可视化和 Markdown,其用途包括数据清理和转换、数值模拟、统计建模、机器学习等等。目前,数据挖掘领域中最热门的比赛 Kaggle 里的资料都是 Jupyter 格式。对于机器学习新手来说,学会使用 Jupyter Notebook 非常重要。
什么是 Jupyter Notebook?
#Linux and OSX
pip install -U pip setuptools
#Windows
python -m pip install -U pip setuptools
#For Python2
pip install jupyter
#For Python3
pip3 install jupyter
jupyter notebook
-
Python 3 -
Text File (文本文件) -
Folder (文件夹) -
Terminal (终端)
-
Code - 这是你输入代码的地方 -
Markdown - 这是你输入文本的地方。你可以在运行代码后添加结论,添加注释等。 -
Raw NBConvert - 这是一个命令行工具,可将你的笔记本转换为另一种格式(如 HTML) -
Heading - 你可以将标题添加到单独的小节并使你的 Notebook 看起来干净整洁。这个选项现在已经集成到 Markdown 选项中。添加一个“##”,以确保在你之后输入的内容将被视为标题
使用 Magic Functions
%lsmagic
-
逐行运行( Line-wise ) -
逐块运行( Cell-wise )
%time a = range(10)
%%timeit a = range (10)
min(a)
不仅限于 Python - 在 Notebooks 中使用 R,Julia 和JavaScript
Jupyter Notebooks 中的交互式命令板
from ipywidgets import widgets
键盘快捷键——节省时间并提高效率!
-
A 键将在选中单元格上方插入新单元格,B 键将在选中单元格下方插入一个单元格 -
要删除单元格,请连续按两次 D 键 -
要撤消已删除的单元格,请按 Z 键 -
Y 键将当前的选中单元格变成代码单元格 -
按住 Shift + 向上或向下箭头键可以选择多个单元格。在多选模式下,按 Shift + M 会合并选中的单元格 -
F 键会弹出 “查找和替换” 菜单
-
Ctrl + Home 转到单元格的开头 -
Ctrl + S 会保存你的工作 -
和上面提过的一样,Ctrl + Enter 将运行你的整个单元格 -
Alt + Enter 不仅会运行你的单元格,它还会在下方添加一个新的单元格 -
Ctrl + Shift + F 打开命令选项板
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
-
Code prettify:重新格式化和美化代码块的内容。
-
Printview:这个扩展添加了一个工具栏按钮来调用当前 Notebook 的 jupyter nbconvert,并可选择在新的浏览器标签中显示转换后的文件。 -
Scratchpad:这个扩展增加一个便捷单元格,它可以让你运行你的代码而不必修改你的 Notebook。这是一个非常方便的扩展,特别是当你想要测试你的代码,但不想在你的活动Notebook上做这件事。 -
Table of Contents (2):这个扩展可以收集你的 Notebook 中的所有标题,并将它们显示在一个浮动窗口中。
-
对于任何程序员来说最重要的事情之一:始终确保为代码添加合适的注释! -
确保你有代码所需的文档。 -
考虑一个命名方案,并坚持在所有代码中使用以确保一致性。这样其他人更容易读懂你的代码。 -
无论你需要什么库,在 Notebooks 开始时导入它们(并在它们旁边添加注释,说明导入它们的目的)。 -
确保代码中行与行之间有适当间隔,不要把循环和函数放在同一行中。 -
有时候你会发现你的文件变得非常繁重。看看有没有方法隐藏你认为对于以后参考不太重要的代码。Notebooks 看起来整洁干净, 让人赏心悦目也非常重要。 -
Matplotlib 可以很漂亮整洁地展示你的 Notebook,看看怎么使用它!地址:http://nbviewer.jupyter.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-4-Matplotlib.ipynb
评论