九大神招,让Python里数据分析神器Jupyter,完美升华

Python breakpoint() 调试范式升级:从print到可配置断点 `breakpoint()` 是 Python 3.7 引入的标准化调试入口,本质是可配置的断点调用机制,其核心原理在于解耦‘触发位置’与‘执行行为’,通过 `sys.breakpointhook` 和 `PYTHONBREAKPOINT` 环境变量实现运行时策略切换。这一设计显著提升了调试行为的可移植性、环境适应性与工程可控性,技术价值体现在无缝支持本地开发(ipdb/pudb)、CI/CD禁用、容器远程调试(remote_pdb)及框架集成(VS Code/Jupyter/FastAPI)。典型应用场景 阅读详情

点击上方 菜鸟学Pyhon,选择置顶或星标

第一时间关注 Python 技术干货!


640?wx_fmt=png
Jupyter Notebook作为一款经典的交互式编辑器,在视图数据等实时展示方面有其特有的优势,但是相比pycharm、sublime等编辑工具,Jupyter Notebook在开发过程中又显得有些“笨拙”,今天给大家介绍几个方法,让Jupyter Notebook用起来更加得心应手。

1
插件篇

1).Nbextensions

Nbextensions相当于Jupyter的插件管理器,使用以下命令安装:

conda install -c conda-forge jupyter_contrib_nbextensions
安装成功后,在Home页面会多出一个Nbextensions选项卡(下图)。
640?wx_fmt=png
进入Nbextensions选项卡后,发现这里罗列了大量Jupyter所支持的插件(下图),选中某个插件后,在页面下方会显示该插件的说明文档,勾选插件前面的选择框系统就会加载启用该插件。


640?wx_fmt=png
有了Nbextensions,就能很轻松的对Jupyter中的其他插件进行管理。


2).Hinterland

Hinterland是jupyter中的自动补全插件,在Nbextensions中勾选该插件名称就能启用。
安装Hinterland后jupyter可以实现如IDE一般的代码自动补全显示,输入代码的头部字符后所有符合的指令都会显示出来以供选择,下图就是写代码过程中Hinterland的提示效果。
640?wx_fmt=png
有了Hinterland之后,你就可以享受与其他流行的IDE一样顺滑的自动代码补全功能了。



3).Collapsible Headings

如果notebook中内容太多,在写代码的时候查看起来会非常不方便,Collapsible Headings插件实现的是一种单元格折叠的功能。对于一些当前不需要反复关注的代码,折叠起来不仅可以免除反复滚动的烦恼,还可以给整个notebook带来更加整洁的视觉体验。
Collapsible Headings的使用依赖于Markdown标签,我们以下图中的单元格为例进行演示。
640?wx_fmt=png
Collapsible Headings插件启用后,在标签左侧会出现一个小的三角箭头,点击标题1左侧的箭头,会发现下面的所有内容都被折叠了起来(下图)。
640?wx_fmt=png


而如果只点击标题2左侧的箭头,则只有标题2下的单元格进行了折叠(下图)。
640?wx_fmt=png
Collapsible Headings所识别的标签作用域所遵循的规则与Markdown完全一致,这里不再进行详细说明。



4).Codefolding

如果说Collapsible Headings的作用是折一系列叠单元格,那Codefolding的作用就是折叠单元格中的代码。只不过Codefolding不会像Collapsible Headings一样自定义折叠区域和层级,它会自动识别处于同一层级的代码,就像pycharm一样。
Codefolding插件启用后在单元格代码的左侧会出现一些小三角箭头,下图这段代码是折叠之前的样子。
640?wx_fmt=png


pie.add折叠之后是这样的:
640?wx_fmt=png



5).Notify

notify也是jupyter中非常实用的一个插件,它的作用是当某个单元格的代码执行完毕后,Jupyter会向我们发送提示通知。这个功能主要适用于一些一些耗时较久的任务,这样在运行代码期间我们就可以把它放在一边去做其他工作,当代码运行完毕后Notify就会提醒我们(下图)。
640?wx_fmt=png


要想Notify真正启用,除了要在Nbextensions(jupyter的插件管理器)中Enable之外,还要在juypter的工具栏中设置参数(下图),其中:
  • Disabled:notify功能不启用
  • 0:如果任务执行时间超过0秒,在任务执行完毕后给予提示
  • 5:如果任务执行时间超过5秒,在任务执行完毕后给予提示,否则不提示

640?wx_fmt=png
目前这一功能已经完美支持Firefox、Chrome和Safari浏览器。



2
技巧篇


6).%debug

调试是写代码不可避免的一个环节,jupyter也有他特有的调试模式——%debug。当代码出现异常后,输入%debug可以直接激活调试器跳到出现错误的地方,在这里还可以查看当前代码的变量情况,下面举个例子来进行说明:
640?wx_fmt=png


上面这段代码由于计算中出现分母为0的情况,所以运行时会报错,这时在下一个单元格中输入%debug指令,jupyter就会进入调试模式。
进入调试模式后会直接跳转到异常发生的位置(下图),同时会出现一个ipdb文本框,这里可以输入变量或特定指令,例如输入程序中的变量a,就会返回当前位置相关的变量值;如果输入指令quit,则会退出调试模式。


640?wx_fmt=png
%debug只是jupyter众多IPython Magic命令中的一个,在juypter中可以使用%lsmagic命令查看所有Magic命令,大家可以根据需要自行选用,这里不再展开介绍。



7).InteractiveShell

我们都知道jupyter中有一个很好用的功能,当把变量名称或没有定义输出结果的语句放在单元格的最后一行,无需print语句,jupyter就会显示变量值,尤其当使用Pandas DataFrames这一数据结构时,输出的结果更加整齐漂亮。
但是这一功能也有其缺点,即默认只能显示最后一行的变量结果,例如下面这段代码,虽然我们要分别查看df的头部数据和尾部数据,但jupyter只能输出尾部数据的结果。
640?wx_fmt=png
其实这个问题解决起来非常容易,只需要使用下面这两行代码修改内核选项即可。
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity='all'
我们再来看看修改后的运行结果:
640?wx_fmt=png
这样在需要查看多个变量时,就不必再把他们放到不同的单元格中运行了。



8).简单的问号?

没错,就是一个简单的问号“?”,在jupyter中就能实现快捷文档功能,使用方法就是在你想要查看的属性或方法之前加一个?,例如我们要查看python中的str()方法,就可以执行下图中的操作,jupyter会自动弹出一个窗口返回相关信息。
640?wx_fmt=png
除了查看文档之外,这个?还可以查看程序中的变量类型。我们在写代码过程中经常需要查看某个变量是何种数据类型,通常我们会使用type()方法,在jupyter中使用?同样可以实现这一功能,而且返回的信息更加完善。
例如我们想要查看上一条内容中的df变量(下图),可以看到除了会返回数据类型信息之外,还会对该dataframe数据的一些基本信息进行描述,推动右侧的滚动条可以查看更多信息。
640?wx_fmt=png



9).Multicursor

如果我们想让一段代码整体缩进可以把他们全部选中然后按下Tab键,而如果要集中删除一批缩进符,就要用到Multicursor功能了。
在jupyter中使用Multicursor功能,只需要按住Alt键然后拖动鼠标就可以了。通俗来讲,Multicursor的作用就是在普通文本中进行“列操作”,这个概念解释起来比较麻烦,我们就用一个例子来进行演示:
640?wx_fmt=gif
(Gif动画图,多看5秒钟)
可以看到,通过Multicursor功能我们同时选中了多个行中的缩进符并进行了删除操作。



由于篇幅有限,本文仅选取了几个极具代表性和实用性的工具为大家进行了介绍。另外,除了上文中介绍的插件和技巧之外,还有大量为jupyter量身打造的第三方库(例如ipywidgets、profiling等),特别是在进行数据科学相关工作时,这些库能为我们提供极大的便利,这部分内容以后有机会再进行介绍。


近期热门:


Jupyter notebook的cell运行结果输出显示配置 参考 JupyterNotebook 输出窗口的显示效果调整 1. 问题描述 在使用JupyterNotebook时,经常会遇到输出结果行数过长,结果显示时自动给放进了一个带有滚动条的小窗口。 但是我们就是想一次看到全部结果,该怎么办? 2. 解决方法 找到窗口上方一排英文的工具栏,点击cell,再点击current outputs,会弹出最终的三个选项,分别是:Toggle、Toggle Sc... 阅读详情

相关推荐

python中在idle,jupyter,pycharm实现即时数据动态显示方法

https://blog.csdn.net/u013468614/article/details/58689735 python中plot实现即时数据动态显示方法 1 通用的方法 1.1 需要保存历史数据 1.2 无需保存数据 1.3 无需保存数据(进阶版) 2 Jupyter notebook版本 2.1 需要保存历史数据 2.2 无需保存历史数据 2.3 无需保存历史数据(进阶版) ...

戈扬的博客 3541

jupyter notebook中执行shell脚本命令,并实时打印输出

import subprocess # 用于执行 shell命令。“”“执行shell脚本命令,并实时打印输出”“”

qq_43539664的博客 1863

Python-使用matplotlib.pyplot实现实时数据动态显示

python做仿真一个痛点就是不能像netlogo等一些其他软件可以很方便的实现实时数据可视化,也正是由于这一点,调试仿真系统时不够直观。因此,掌握如何根据仿真系统即时生成的数据绘制动态图形很重要。已经有几位博主给出了详细的博文,这给大家举出来。为了增加点新东西,,方便大家读懂代码。

艽野尘梦的博客 1万+

数据分析利器Jupyter notebook入门手册

公众号:尤而小屋作者:Peter编辑:Peter 大家好,我是Peter~ 很多读者问过我,Peter文章中的Python代码都是用的什么编辑器写的? 今天就公开啦:Jupyter Notebook,没有Pycharm,没有Vscode,没有Sublime text。只有Jupyter Notebook。从2019年至今,使用了两年半多的时间,今天就好好聊聊它~ 工欲善其事,必先利其器 官网学习地址:https://jupyter.org/ 使用说明:https://jupyter-notebo.

尤尔小屋 1327

2024年Python最新大神,让Python数据分析神器Jupyter完美升华

Jupyter Notebook作为一款经典的交互式编辑器,在视图数据等实时展示方面有其特有的优势,但是相比pycharm、sublime等编辑工具,Jupyter Notebook在开发过程中又显得有些“笨拙”,今天给大家介绍几个方法,让Jupyter Notebook用起来更加得心应手。插件篇Nbextensions相当于Jupyter的插件管理器,使用以下命令安装:安装成功后,在Home页面会多出一个Nbextensions选项卡(下图)。

2401_84688317的博客 1142

2024年最全大神,让Python数据分析神器Jupyter完美升华,开发面试基础

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

2401_84538544的博客 652

大神,让Python数据分析神器Jupyter完美升华,三面美团、四面阿成功斩下offer

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~给大家准备的学习资料包括但不限于:Python 环境、pycharm编辑器/永久激活/翻译插件python 零基础视频教程Python 界面开发实战教程Python 爬虫实战教程Python 数据分析实战教程python 游戏开发实战教程Python 电子书100本。

m0_60607371的博客 734

jupyter lab文档位置默认system_大神,让Python数据分析神器Jupyter完美升华...

点击上方 菜鸟学Pyhon,选择置顶或星标第一时间关注 Python 技术干货!Jupyter Notebook作为一款经典的交互式编辑器,在视图数据等实时展示方面有其特有的优势,但是相比pycharm、sublime等编辑工具,Jupyter Notebook在开发过程中又显得有些“笨拙”,今天给大家介绍几个方法,让Jupyter Notebook用起来更加得心应手。1插件篇1).Nb...

weixin_39678163的博客 121

数据分析实战:从数据清洗到可视化洞察的盈利分析全流程

数据分析作为从海量信息中提取价值、驱动决策的核心技术,其原理在于通过系统性的方法将原始数据转化为可理解的洞察。这一过程的技术价值在于能够揭示业务规律、定位问题并预测趋势,从而在商业分析、运营优化和战略规划等场景中发挥关键作用。在实战中,数据清洗是确保分析可靠性的基础,而可视化设计则是高效传递复杂信息的桥梁。例如,通过构建包含毛利率、净利率等核心指标的盈利分析框架,并利用折线图、瀑布图等可视化工具,可以直观呈现行业盈利状况,精准定位问题根源。本文聚焦于行业盈利分析这一典型应用,通过模拟实战场景,系统拆解从数据

weixin_30735745的博客 362

Python机器学习:从零基础到项目实战

当您翻开此书,您正踏入一场数据与智慧的修行。机器学习,并非冰冷的符码,而是机器模拟人类洞察世界的法门。本书将带您,以Python为舟,泛游于算法之海。我们不只传授“术”,更探求其后的“道”——从数据的生灭流转中观照规律,于模型的迭代演进体悟得失。愿您合上书卷时,收获的不仅是驾驭数据的技能,更有一双洞悉复杂、化繁为简的“智慧之眼”。现在,让我们一同启程。

YunWisdom 869

Python深度学习:从入门到实战

亲爱的读者,欢迎您翻开这本书。我们即将探索的,是深度学习的宇宙——一个由数据、算法与算力构筑的奇妙世界。它既是严谨的科学,也是创造的艺术,更是一条通往未来智慧的修行之路。本书将带您从最基础的数学原理出发,亲手搭建神经网络,驾驭Transformer等前沿模型,最终将智慧转化为现实世界的价值。请放下畏惧,保持好奇。这不仅是一次知识的学习,更是一场思维的远行。来,随我一起,开启这趟非凡的旅程吧。

Yuner2000的博客 188
上一篇: 2020 年校招,最值得加入的互联网公司有哪些?
下一篇: 爬虫已经凉凉,再不学点数据分析,你真的Out了!
菜鸟学Python
博客等级 码龄9年 7562粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值