当前位置:网站首页>1个不为人知的 Jupyter notebook 使用技巧,今天分享出来。
1个不为人知的 Jupyter notebook 使用技巧,今天分享出来。
2022-08-08 21:14:00 【朱小五是凹凸君呀】

大家好,我是小五🧐
Jupyter Notebook 是一个友好的 Python 编辑器,更是一款集编程和写作于一体的效率工具!最近有个小伙伴看到我的 Jupyter Notebook截图,就问为啥你没写变量名就输出结果了呢?
嘿嘿,这时候我才发现这个技巧竟然好多人都不知道。
正文开始~
今天给大家推荐一个不为人知的Jupyter Notebook使用技巧。
默认输出
虽然平时我随手可能直接就用 Sublime Text 编辑Python文件了,但是如果涉及处理数据,还是习惯打开 Jupyter Notebook。
那我们还是以数据处理最常用的Pandas语句举例吧,如下所示。
import pandas as pd
data = {"Car": ["A", "B", "C", "D", "E", "F"],
"Color": ["Red", "Yellow", "Black", "Green", "Black", "Red"],
"Year": ["1990", "1980", "2003", "2000", "2001", "2004"],
"Rating": ["2.5", "1.5", "3.8", "9.7", "8.9", "3.2"]}
df = pd.DataFrame(data)
df.head()
读取数据集data后,默认情况下 DataFrame 并不会输出数据。我们通常会再写一遍变量名df预览数据,或者使用head()方法检查其前五行。
但是当我们进行大量数据处理时,就需要每执行一个操作(替换、运算、转换、拼接等等),就要单独写一个df.head或df检查新的 DataFrame 对象。
这真的太麻烦了,怎么提高效率呢?
更改默认输出
由于Jupyter Notebook 建立在IPython库之上,我们通过运行以下代码来更改默认输出行为。它会更改 Jupyter Notebook 所依赖的 IPython 中交互式 shell 的工作方式。
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "last_expr_or_assign"其作用就是:显示最后一个表达式的计算结果或赋值语句中使用的值。

在运行了这两行代码后,我们再运行前面的Pandas代码,就会发现:

如上图所示,我们不再需要运行df.head,所创建的DataFrame对象会自动显示出来供我们检查数据。
换成其他操作也是一样的输出结果。

这样的话,我们每执行一个操作就可以直接显示操作后的 DataFrame 对象。
是不是很方便~
其实除了“last_expr_or_assign”选项之外,我们还可以尝试其他选项。
ast_node_interactivity = Enum(['all', 'last', 'last_expr', 'none', 'last_expr_or_assign'],
default_value='last_expr',
help="""
'all', 'last', 'last_expr' or 'none', 'last_expr_or_assign' specifying
which nodes should be run interactively (displaying output from expressions).
"""
).tag(config=True)比如我们将ast_node_interactivity设置改为all后,
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"就可以实现一次性输出多个结果。

一劳永逸
但是,最喜欢偷懒的我,肯定不乐意每次新建一个 Notebook 就要输入这两行代码呀。
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "last_expr_or_assign"所以我们可以用这个方案,一劳永逸 :
在我们电脑的/.ipython/profile_default目录下,创建一个名为ipython_config.py的文件。

接着将下面这段代码写入ipython_config.py文件中。
c = get_config()
c.InteractiveShell.ast_node_interactivity = "last_expr_or_assign"
创建该此文件后,我们再创建任何 Notebook 文件,打开之后的输出行为都被固定下来了。
抑制输出
这时候又有小伙伴会问了,我有的代码单元格不想输出咋办啊。
啊这。。。
要不你再改回去?
算了,还有个方法,
就是在你的代码后面加个分号,就能抑制输出了。

如上图所示,当我们以分号结束时,就不会显示更多输出。

推荐阅读:


点击这里,阅读更多数据文章!
边栏推荐
猜你喜欢

文档图像二值化DIB_paper_2(更新中...)
GeoServer入门学习:05-多层级MBTiles规范数据发布

推荐7款好用的Visual Studio扩展
GeoServer Getting Started Learning: 06-Publishing Multi-level TIF Map Data

IDEA Error:(1, 1) 错误: 非法字符: \65279 Error:(1, 10) 错误: 需要class, interface或enum 解决办法

神经网络论文Enhancing deep neural networks via multiple kernel learning

《第一行代码(第二版)》学习中百分比布局依赖导入问题

【idea_取消自动import .*】
GeoServer入门学习:02-安装部署

微信小程序--》数据请求和页面导航
随机推荐
【带信息的Excel模板下载】
ES6新特性let和const
Redis之过期策略、内存淘汰机制、LRU
Introduction to GeoServer: 01-Introduction
二分、前缀和(激光炸弹)几道例题的详细讲解,帮助理解相关知识点
用Multisim13.0进行混频器的仿真
matlab入门基础{特殊变量}:单元型变量和结构型变量
【线性代数05】行列式的性质和应用
【生活成长】——小白成长历险记
GeoServer入门学习:03-快速入门
波动数列,简易AC代码,详细讲解。
4 Gephi
MATLAB综合实例:时域信号的频谱分析
用js写一个简单的前世今生
IDEA Error:(1, 1) 错误: 非法字符: \65279 Error:(1, 10) 错误: 需要class, interface或enum 解决办法
两个行间块状div之间的间隙消除
关于RecyclerView布局
差分约束
【转发与重定向(二)】
SQLite的简单应用