专栏首页Python绿色通道数据分析篇 | 如何配置数据分析利器Jupyter Notebook?

数据分析篇 | 如何配置数据分析利器Jupyter Notebook?

  1. 如何在启动时指定目录?
  2. 如何安装扩展插件?
  3. 如何修改颜色主题?
  4. 如何让一个单元格显示多个输出?
  5. 如何不使用科学计数法显示数字?
  6. 如何添加与删除虚拟环境?
  7. 如何让 matplotlib 与 Seaborn 显示中文?
  8. 常用快捷键有哪些?
  9. 文末彩蛋,必看!!!

1. 如何在启动时指定目录?

指定启动目录可以减少很多切换目录的麻烦操作,呆鸟以前写过一篇《1 分钟修改 Jupyter 启动文件夹》,已经介绍过,不在此赘述了。

另外,还有文章介绍通过修改快捷方式指定启动目录,恕呆鸟愚钝,每次改完快捷方式都失效了,不知道哪里出的问题,感兴趣的朋友自己查下,试试看。

2. 如何安装扩展插件?

Notebook 有个很强大的扩展插件,好东西必须要安装。

安装插件的方式与上一篇介绍的一样,如果不知道怎么安装,请看《如何用 Anaconda 安装、升级、删除支持库?一文里第 3 个问题的答案,怎么安装 Anaconda 里没有的 Python 支持库?

jupyter_contrib_nbextensions

# 用 pip 安装,二选一
pip install jupyter_contrib_nbextensions

# 或用 conda 安装,二选一
conda install -c conda-forge jupyter_contrib_nbextensions

# 设置用户
jupyter contrib nbextension install --user

jupyter_nbextensions_configurator

# 用 pip 安装,二选一
pip install jupyter_nbextensions_configurator

# 或用 conda 安装 ,二选一
conda install -c conda-forge jupyter_nbextensions_configurator 

# 设置用户
jupyter contrib nbextension install --user

# 启用用户
jupyter nbextensions_configurator enable --user

运行 Jupyter 以后,在地址栏里输入 http://localhost:8888/nbextensions,直接进入插件界面:

注意:有时候安装完会发现插件点不了,如下图,这时要去掉红框里的√。

去掉√,以后就可以了。

推荐几个呆鸟常用的小功能:

  • Hinterland,代码自动补全
  • autopep8 ,对单元格里的代码自动排版 要用 pip install autopep8 安装对应插件,不安装会提示出错; 点击红框里的小锤子图标,应用 autopep8:
  • Execute Time,查看单元格的执行时间;
  • Table of Contents(2),自动目录,需要和 Markdown 配合,不懂 Markdown 的需要学习一下。
  • 点击图标 1,开关目录显示;
  • 点击图标 2,刷新目录;
  • 点击图标 3,设置目录,比如,是否标题前是否加数字序号。
  • Variable Inspector,显示变量数据。点击红框里的图标,打开变量查阅器窗口。

还有很多插件都很实用,自己慢慢研究吧。

循环进度条

  • 插件网址:https://tqdm.github.io/
  • 插件用途:数据分析有时要操作循环,但 Jupyter Notebook 没有显示监控的功能,tqdm 这个插件就是用来监控循环进度的,很实用。
  • 代码示例
from tqdm import tnrange, tqdm_notebook

%%time # 这个是计算操作时间的魔法命令
# 第一种方式
import numpy as np
from tqdm import tnrange, tqdm_notebook

a = []
for _ in tnrange(100,desc="第一个循环"):
    a.append(np.random.randn(1,1000))

# 第二种方式
import numpy as np
from tqdm import tnrange, tqdm_notebook
a = []
b = []
for _ in tqdm_notebook(range(1000),desc="第二个循环"):
    a.append(np.random.randn())
    b.append(np.random.randn())

3. 如何修改颜色主题?

不喜欢默认界面,或想换下口味,jupyter-themes 可以更改颜色主题。

  • 插件网址: https://github.com/dunovank/jupyter-themes
  • 安装pip install jupyterthemes
  • 参数说明

命令行选项说明

颜色选项

参数

默认值

查看帮助

-h

--

查看主题列表

-l

--

主题名称

-t

--

代码字体

-f

--

代码字号

-fs

11

Notebook 字体

-nf

--

Notebook 字号

-nfs

13

文本或 Markdown 单元格字体

-tf

--

文本或 Markdown 单元格字号

-tfs

13

Pandas DataFrame 字号

-dfs

9

输出内容字号

-ofs

8.5

Mathjax 字号 (%)

-mathfs

100

页边距

-m

auto

单元格宽

-cellw

980

单元格行高

-lineh

170

光标大小

-cursw

2

光标颜色

-cursc

--

Alt 命令布局

-altp

--

Alt Markdown 背景色

-altmd

--

Alt 输出背景色

-altout

--

Vim 风格扩展

-vim

--

工具栏是否可见

-T

--

Notebook 名称与标识是否可见

-N

--

内核标识是否可见

-kl

--

重置为默认主题

-r

--

强制使用默认字体

-dfonts

--

  • 应用示例: 在 Terminal 里设置主题:输入命令 jt -t grade3,jt 是 jupyter-themes 的简称,-t,就是上表里的主题名称对应的参数,grade3,是 jupyter-themes 内置的主题名称,下面列出了默认主题的示例,大家可以选择自己喜欢的。
  • 内置主题
  • grade3
  • gruvboxd
  • gruvboxl
  • chesterish
  • monokai
  • oceans16
  • onedork
  • solarizedd
  • solarizedl

除了默认主题,还可以把主题与其它参数搭配,下面推荐一个呆鸟喜欢的配置 jt -t onedork -f fira -fs 105 -ofs 95 -tfs 105 -nfs 115 -dfs 105 -N -T

下图是修改后的效果,喜欢深色主题的朋友可以试下,文字也更加饱满、清晰。

  • 恢复默认主题, 所有主题都不喜欢?用 jt -r 即可恢复还原默认主题。

4. 如何让一个单元格显示多个输出?

正常情况下, 一个单元格只显示一个输出结果;

执行下列代码以后,就可以显示多个代码了;

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

5. 如何不使用科学计数法显示数字?

{:,.2f} 代表显示的是两位小数。

pd.options.display.float_format = '{:,.2f}'.format

6. 如何添加与删除虚拟环境?

代码里的 virtualenv-name 要改为实际的虚拟环境名称,比如呆鸟用的虚拟环境就叫 Python3,见下图。

  • 安装:python -m ipykernel install --user --name=virtualenv-name
  • 查看:jupyter kernelspec list
  • 删除:jupyter kernelspec uninstall virtualenv-name

7. 如何让 matplotlib 与 Seaborn 显示中文?

默认情况下,matplotlib 与 Seaborn 不支持中文,要设置中文字体。

%matplotlib inline

# 设置 matplotlib 图形分辨率
plt.rcParams['figure.dpi'] = 150

# matplotlib 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']

# matplotlib 正常显示负号
plt.rcParams['axes.unicode_minus'] = False

# Seaborn 字体与字号设置
sns.set( font='SimHei', font_scale=1.2)

# MacOS:matplotlib 与 Seaborn 支持中文
plt.rcParams['font.family'] = ['Arial Unicode MS']
sns.set_style('whitegrid', {'font.sans-serif': ['Arial Unicode MS', 'Arial']})

8. 常用快捷键有哪些?

首先,要了解什么是编辑模式?什么是命令模式

红框里是绿色时,为编辑模式,在命令模式时按 Enter 会进入编辑模式;

红框里是蓝色时,为命令模式,在编辑模式时按 ESC 会进入命令模式;

通用模式(编辑模式与命令模式均可)快捷键:

  • 调出控制面板:Ctrl + Shift + P
  • 运行当前单元格,选中下方单元格:Shift + Enter
  • 运行当前单元格:Ctrl + Enter
  • 运行当前单元格,在下方插入新单元格:Alt + Enter
  • 保存 ipynb 文件:Ctrl + S

编辑模式快捷键

  • 切换为命令模式:ESC
  • 在光标处分割单元格:Ctrl + Shift + 减号
  • 光标挪至行首或行尾:Alt + ←或→
  • 按单词挪动光标:Ctrl + ←或→
  • 缩进:TAB
  • 取消缩进:Shift + TAB
  • 删除光标前的整个单词:Ctrl + Backspace
  • 删除光标后的整个单词:Ctrl + Delete
  • 显示函数提示:Shift + TAB,按一次显示简略信息,按两次显示详细信息,按三次 10 秒内固定显示,按四次,函数信息固定显示在界面下方。
  • 移动到上一个单元格:↑
  • 移动到下一个单元格:↓
  • 复制光标所在整行:Ctrl + C,注:不要选择任何内容
  • 剪切光标所在整行:Ctrl + X,注:不要选择任何内容
  • 其它复制、剪切、黏贴、重做、取消等快捷键与 Windows 标准快捷键一样。

命令模式快捷键

  • 切换为编辑模式:Enter
  • 选中单元格改为代码格式:Y
  • 选中单元格改为 Markdown 格式:M
  • 选中单元格改为原生格式:R
  • 当前单元格上方插入单元格:A
  • 当前单元格下方插入单元格:B
  • 删除选中单元格:DD,即连续按两次 D 键
  • 恢复删除的单元格:Z
  • 复制选中单元格:C
  • 剪切选中单元格:X
  • 黏贴选中单元格:V
  • 查找与替换内容:F
  • 隐藏 / 显示输出内容:O
  • 隐藏 / 显示代码行号:L
  • 扩展选择当前单元格上方单元格:Shift + ↑
  • 扩展选择当前单元格下方单元格:Shift + ↓
  • 合并多个单元格:Shift + M
  • 重启内核:00,即连续按两次

注:以上快捷键字母不分大小写

9. 文末彩蛋,必看!!!

呆鸟为大家精心编译了 Jupyter Notebook 速查表,详细介绍了 Jupyter Notebook 的界面功能,高清大图 PDF,请在公号后台输入 notebook 获取下载地址

最后,有关 Jupyter Notebook 用法其实还有很多,比如魔法命令,但小白一般也用不上,就先不介绍了。

总的来说,Jupyter Notebook 比其它 IDE 要简单太多了,小白不至于为了 IDE 操作,就直接晕倒,因此,非常适合上手 Python 数据分析,等深入学习以后,再用那些高大上的 IDE,也为时不晚。

【完】

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。

本文分享自微信公众号 - Python绿色通道(Python_channel)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一篇文章带你了解当下主流的监控工具

    以往,在缺少告警机制的情况下,企业无法第一时间洞悉到系统发生故障,只能通过用户的反馈来获取,系统运维人员往往也只是充当了一个“救火” 队员,大面积的系统瘫痪往往...

    lyb-geek
  • 腾讯科技升级1000天:团战、登月与烟囱革命

    “未来,腾讯是一家什么样的公司?” 从传统互联网到产业互联网、再到前沿科技基础研究的探索,21岁的腾讯在从一家互联网公司到科技公司的升级之路上一往无前。在刚刚过...

    尾尾
  • 倪光南:国产产品要自主可控,中国正从“人口红利”转向“工程师红利”

    自从今年五月份,华为被列入美国“限购令”事件以来,大众对于国产芯片的关注度持续上升,尽管昨天美国商务部再次“豁免”华为,在关键技术上避免受制于人的共识已从上到下...

    大数据文摘
  • 正经的我,做了个不正经的项目

    今天逛「掘金」的时候,发现一个特别有趣的项目,所以我跟作者申请了一下授权,把项目分享给大家看看。

    五分钟学算法
  • 安装GitHub的R包困难解决方案

    比如安装GitHub的R包,因为并不是所有的R包都会被正式的发布在CRAN或者bioconductor,所以对于简简单单分享在GitHub的R包一般我们搜索到如...

    生信技能树
  • 压缩包密码又忘了?这段代码甩你脸上,轻松搞定

    zipFile模块式Python自带的模块,提供了对zip 文件的创建,读,写,追加,解压以及列出文件列表的操作

    AI算法与图像处理
  • 用 Go 重构 C 语言系统,这个抗住春晚红包的百度转发引擎承接了万亿流量

    11 月 20 日,百度的万亿流量转发引擎 BFE 登上了 GitHub Trending Top 3,今日 Star 已突破 270。事实上,这个曾经抗住 2...

    诸葛青云
  • [日常] 解决github速度特别慢

    nslookup github.global.ssl.fastly.Net nslookup github.com

    陶士涵
  • 全栈工程师自述:我的编程能力为什么突飞猛进?| 知乎3千7百赞

    两天之内,就引起了150多位用户来分享自身经验。因为话题非常具有干货导向,也引起了大量的围观。

    量子位
  • 云原生进程再提速,腾讯云发布四款云中间件产品

     “以微服务、容器、无服务器以等为代表的云原生技术正在成为下一代云计算发展的重要支撑,腾讯云云原生团队正在从技术、产品、生态等多个层面全面布局,引领整个行业的...

    腾讯云serverless团队

扫码关注云+社区

领取腾讯云代金券