社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

【Python】这几个Jupyter Notebook高级功能,不允许你还不知道

机器学习初学者 • 昨天 • 6 次点击  

Jupyter Notebook 是我编程、数据分析和教学的首选。而大多数人常用的功能只停留在运行单元和绘制图表。然而, Jupyter 有一个更深层次的功能很容易被忽略,只要能用好他们,我敢保证可以节省时间并优化你的工作流程。所以我不允许你到现在还不知道!

以下是接下来要分享的十个强大的功能——专业人士使用但很少被拿出来分享的功能。下面我们就一起来看看吧,觉得有用,不妨点个赞支持下云朵君!

1. 真正有用的魔法命令

魔法命令(以%或 开头%%)是 Jupyter IPython 内核内置的快捷键。大家都知道%matplotlib inline,但不妨试试%timeit。它可以对代码执行时间进行基准测试。想比较排序算法?它能%timeit my_sort(data)提供真正的见解,无需套用任何样板代码。

更厉害的是:你可以使用%%bash在一个单元格中编写完整的 Bash 脚本。例如需要在Notebook中途检查磁盘空间,只需执行以下操作:

%% bash   
df -h

无需切换终端,非常方便。

2. 交互式小部件,无需 JavaScript

使用ipywidgets,你可以将函数转换为交互式工具。只需用 interact()包裹它们,即可立即显示滑块或下拉菜单。

from ipywidgets import interact
def f(x):
    return x**2
interact(f, x=10)

你敢相信,我曾经在 15 分钟内构建了一个参数调优仪表板。可以看出在快速探索方面,它胜过静态图表。甚至可以将小部件导出为 HTML 并进行分享。

3. 使用 %autoreload 实时重新加载代码

使用 Jupyter 时编辑外部.py文件似乎是一件非常痛苦又麻烦的事情 ,因此我推荐你直接使用 %autoreload

%load_ext autoreload  
%autoreload 2

现在,当文件更改时,导入的内容会自动更新。无需每次调整utils.py后都重新启动内核。

4. 即时文档,无需联网搜索

通常我们在想查看一个函数的含义或使用方法时,此时就需要函数方面的帮助,请在末尾添加一个?。例如:

pd.DataFrame?

想要查看源代码吗?使用??

np.linalg.inv??

当我忘记参数或想了解函数功能时,我会经常使用它。相信你应该会使用这个功能的!

5. 可折叠部分 = 更简洁的Notebook

我们通常会在一个 Notebook 中编写了大量的代码,此时大Notebook太乱了。你滚动浏览输出、Markdown、代码块……感觉不堪重负。

安装nbextensions

pip install jupyter_contrib_nbextensions

然后启用可折叠标题。现在,你可以使用 Markdown 标题像手风琴一样折叠各个部分。建模时隐藏 EDA。

6. 在一个Notebook中混合多种语言

虽说 Python 很棒,但有时你还是需要 R 或 Julia。只要有合适的内核,Jupyter 就能支持所有这些语言。

  • 为 R 语言安装IRkernel
  • %R运行 R 代码
  • 同样用%julia 运行Julia

我使用 Python 进行数据整理,用 R 进行 ggplot 可视化——所有这些都在一个Notebook里完成。运行起来出奇地流畅。

7. 自定义键盘快捷键

虽然 Jupyter 的默认快捷方式很好,但你也可以创建自己的快捷方式。下面我们看下如何创建。

前往:帮助 → 编辑键盘快捷键

我设置了Ctrl+Shift+R重启内核(因为我经常这么做)。根据你的工作流程和习惯定制快捷键是非常有必要的。

8. 导出Notebook

共享原始 .ipynb文件对用户来说稍微有点麻烦,尤其是分享给那些非程序员,如领导,产品经理等等。此时我们就需要想到用于nbconvert导出干净的PPT报告。

jupyter nbconvert my_notebook.ipynb  --to  html

你将获得一个精美的 HTML 文件,无需在另一端进行任何设置。你还可以转换为 PDF 或幻灯片。我使用:bash 将杂乱的原型变成了实时幻灯片。

jupyter nbconvert my_notebook.ipynb  --to slides --post serve

比 PowerPoint 快得多。

9. 使用 %pdb 进行实时调试

打印语句没问题——直到不行为止。用于%pdb on启用调试器。

%pdb

当出现错误时,你可以进入交互式 shell。逐步遍历变量。实时检查混乱情况。当你追踪棘手的错误时,这是一个巨大的进步。

10. 在远程服务器上运行 Notebook

工作繁重?别搞坏你的笔记本电脑。在远程机器上运行Notebook,然后将其隧道传输到你的浏览器。

在服务器上:

jupyter notebook --no-browser --port=8889

在你的机器上:

ssh -L 8889:localhost:8889 user@yourserver

在浏览器中打开localhost:8889。现在,你正在使用具有本地界面的强大服务器。

这些功能不会像新框架那样一闪而过,但它们会提升你使用 Jupyter 的方式。编码更快,调试更智能,呈现更出色。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/183203
 
6 次点击