上手jupyter notebook神器

简介: Jupyter Notebook是一个开源的 Web 应用,能够让你创建、分享包含可执行代码、可视化结构和文字说明的文档。

一、简介


  • Jupyter Notebook是一个开源的 Web 应用,能够让你创建、分享包含可执行代码、可视化结构和文字说明的文档。
  • Jupyter Notebook的应用非常广泛,它可以用在数据清理与转换、数字模拟、统计模型、数据可视化、机器学习等方面。

Jupyter Notebook非常活跃于深度学习领域。在项目的实验测试阶段,它相比于用 py 文件来直接编程更方便一些。在项目结束之后如果要写项目报告,用 Jupyter 也比较合适。


二、安装与使用


Jupyter Notebook主要有以下三个非常实用的功能:执行代码、数据可视化以及使用 Markdown 功能写报告


  • 执行代码。一般是 Python 程序,也可以添加新的编程语言。


  • 数据可视化。如果我们经常在 Linux 环境编程开发,需要对数据可视化该怎么办呢?是不是只能把图片保存下来,然后下载到本地进行查看?使用 Jupyter Notebook 就不用多此一举,我们可以直接在页面中查看。如下图所示:


  • 使用 Markdown 功能写文档。这些文档中还包含了代码以及代码执行后的结果,非常有助于你书写项目报告。


1. 安装


  • 最简单的方法是通过安装 Anaconda 来使用 Jupyter Notebook & Lab。Anaconda已自动安装了 Jupter Notebook 及其他工具,还有 Python 中超过 180 个科学包及其依赖项。安装好 Anaconda 后进入 Anaconda Navigator,可以通过 Anaconda Navigator 启动 Juypter Notebook 或者 Jupyter Lab。


  • 使用 pip 安装与启动:


# 升级pippip install --user--upgrade pip -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
# 安装 Jupyter Notebookpip install jupyter notebook -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
# 安装 Jupyter Labpip install jupyterlab -i http://pypi.douban.com/simple --trusted-host pypi.douban.com


安装完成后,直接在终端执行 jupyter notebook 或 jupyter lab 命令启动。


2. 基本使用


以讲解 Jupyter Lab 的使用为例,Jupyter Lab是 Jupyter Notebook 的下一代产品,在使用方式上更为灵活、便捷。使用 Jupyter Lab 的内容同样适用于Jupyter Nobebook,它们只是工具的表现形式不一样而已。


我们在命令行或者 Anaconda Navigator 中启动 Jupyter Lab 之后,浏览器会自动打开如下所示的 Jupyter Lab 界面:


最左侧显示的是你启动时所在的目录,右侧是你可以使用的一些开发工具。


  • 点击 Notebook 的 “Python 3” 的图标之后,会自动新建一个 Notebook。
  • Jypter Lab 与 Jupyter Notebook 中都会用到这个叫作 Notebook 的编辑工具。
  • Jupyter Lab 与 Jupyter Notebook 的不同之处在于 IDE 的界面以及操作方式,这里讲解是以使用 Jupyter Lab 为例。
  • 一个 Notebook 的编辑界面主要由 4 个部分组成:菜单栏、工具栏、单元格(Cell)以及内核。如下图所示:


单元格(Cell):


  • Code 单元格:包含可以在内核运行的代码,并且在单元格下方输出运行结果。
  • Markdown 单元格:包含运用 Markdown 的文档,常用于文档的说明,也是可以运行的单元格。
  • 从 Code 单元格切换到 Markdown 单元格的切换的快捷键是m;从 Markdown 单元格切换到 Code 单元格的切换的快捷键是y。
  • 切换之前需要先按 Esc,从单元格的编辑状态中退出。


在工具栏中也可以切换,但是还是快捷键方便些,如下图所示:


  • 我们可以通过上下键移动选中的单元格。移动到这一行,然后开始运行这个单元格。
  • 运行单独一个单元格的快捷键为:Ctrl+Enter,运行选中单元格并切换到下一个单元格的快捷键是Shift+Enter。
  • a 在单元格上方插入新的单元格;b 在单元格下方插入新的单元格;
  • x 删除单元格;z 撤销删除的单元格。


3. Magic 命令


Jupyter Notebook 的前身是 IPython Notebook,所以 Jupyter 也支持 IPython 的 Magic 命令。IPython 是一个比 Python 自带的 Shell 更加灵活方便的 Shell,它主要活跃于数据科学领域。


Magic 命令分两种:


  • Line Magics 命令:在命令前面加%,表示只在本行有效
  • Cell Magics 命令:在命令前面加%%,表示在整个 Cell 单元有效。


介绍几个常用的 Magic 命令


  • %lsmagic:用来查看可以使用的 Magic 命令


  • %matplotlib inline:可以在单元格下面直接打印出 matplotlib 绘制的图形,通常要在 matplotlib 模块引入之前使用;使用这个 Magic 命令之后,可以不用 plt.show()。


  • %pwd:查看当前的文件路径


  • %%writefile:写文件,%%writefile 后面紧跟着文件名,然后下面写文件的内容


  • %run: 运行一个文件,%run 后面跟着要运行的文件


比如我们先写一个 test_temp.py 的文件。运行单元格之后会在当前位置生成一个叫作 test_temp.py 的文件,然后使用 %run 来运行它


%load:加载文件。使用 %load + 文件名可以把指定的文件加载到单元格内


示例如下:


开发到某一阶段时,可能会发现之前的某些代码写错了,需要回过头重新编辑然后运行代码,这是一件很正常的事情。但这个时候你要注意,每个 Code 单元格是有执行顺序的,这个顺序就是每个单元格前面[]的数字。


如果你想全部重新执行的话,Kernal 菜单中的一些功能会帮到你。


  • Restart Kernel:重新启动内核,清除所有变量。
  • Restart Kernel and Clear All Outputs:重新启动内核,清除所有变量与输出。
  • Restart Kernel and Run up to Selected Cell:重启内核,运行选中的单元格。
  • Restart Kernel and Run All Cells:重启内核,运行所有单元格。


我们现在使用的是 Python 内核,其实 Jupyter 还支持很多其他的内核,如 Java、C、R 以及 Julia 等编程语言的内核。我们创建 Notebook 的时候就选择好了使用什么样的内核。


三、配置Notebook


1. 更改默认工作目录


想要修改 Jupyter Notebook 那些默认的配置选项,就需要在配置文件 jupyter_notebook_config.py 中修改相应配置选项的属性。这个配置文件一开始并不存在,需要手动生成,在命令行输入 jupyter notebook --generate-config 并执行,配置文件就创建好了,它的位置是在 C:\Users\Administrator.jupyter\ 中。


然后根据路径去找配置文件:jupyter_notebook_config.py


一般情况下,jupyter的默认工作目录为C:\Users\Administrator\,这样很不清爽,而且不便于管理项目,所以常需要在其他盘建立一个独立的jupyter工作目录文件。


现在用前面生成的配置文件jupyter_notebook_config.py,工作目录就在这个里面进行修改。


  • 用记事本打开配置文件jupyter_notebook_config.py
  • Crtl + F组合键,然后输入 c.NotebookApp.notebook_dir 查找到元素,删掉前面的注释#
  • 在后面的单引号里输入要设置的目录路径,保存关闭;例如:c.NotebookApp.notebook_dir = r’D:\python\jupyter_notebook’
  • 修改快捷键,在 win 开始菜单中搜索,找到 jupyter notebook 快捷图标,右击选择属性,删除目标值最后的 “%USERPROFILE%”,点击确定退出。



经过这四个步骤,工作目录就修改好了,这时候不管你是通过快捷键还是命令行进入jupyter notebook,都能看到最新设置的目录,干净清爽,之后写代码,在这个目录下创建文件即可,方便管理。



2. 更换皮肤主题


jupyter notebook默认的主题为白色背景,长期使用对眼睛不太友好,如果能够像 Pycharm 那样更换自己喜欢的主题,既能缓解视觉疲劳、保护视力,又能提升敲代码体验,岂不美哉!


Github上大神提供的包jupyterthemes:https://github.com/dunovank/jupyter-themes


jupyterthemes的安装


pip install jupyterthemes -i http://pypi.douban.com/simple --trusted-host pypi.douban.com


命令行输入如指令查看主题


jt -l


结果如下:


Available Themes:
   chesterish
   grade3
   gruvboxd
   gruvboxl
   monokai
   oceans16
   onedork
   solarizedd
   solarizedl
# 有很多主题可供使用呀


查看jupyter-theme的帮助手册


jt -h


结果如下:


可以看到,帮助里告诉了我们该如何使用命令以及参数设置。


jupyter-theme常用参数


更多详细的使用和字体设置参考文档:https://github.com/dunovank/jupyter-themes


jupyter-theme使用示例


jt -t monokai -f sourcemed -fs12-tf sourcemed -tfs16-nf code -nfs13-ofs14


运行效果如下:


jt -t gruvboxl -f hack -fs12-tf sourcemed -tfs16-nf ptmono -nfs13-ofs14


运行效果如下:


jt -t solarizedd -f sourcemed -fs12-tf sourcemed -tfs16-nf code -nfs13-ofs14


运行效果如下:


jt -t chesterish -f sourcemed -fs12-tf sourcemed -tfs16-nf code -nfs13-ofs14


运行效果如下:


更多风格可以自行调参数进行设置,当你又想变回原来的风格,使用如下命令:


# -*- coding: UTF-8 -*-"""@Author  :叶庭云@公众号  :修炼Python@CSDN    :https://yetingyun.blog.csdn.net/"""jt -r


运行效果如下:


目录
相关文章
|
Web App开发 缓存 JavaScript
如何处理页面关闭时发送HTTP请求?
在实际项目开发中,可能会遇到这样的业务问题:如何在用户离开或关闭页面时发送HTTP请求给服务端?可能有人会觉得页面都关闭了,还需要发送什么请求,完全没必要噻。但如果真有这样的业务需求落到自己的头上,那么我们应该如何来实现呢?
3176 0
如何处理页面关闭时发送HTTP请求?
|
5月前
|
存储 SQL 人工智能
AI时代代码开发(数据库设计)
本文介绍基于三范式与DDD的数据库设计流程,结合AI工具辅助分析页面原型,通过部门、员工及工作经历模块,演示表结构设计与优化过程,强调人工校验与调整的重要性,最终完成符合业务需求的数据库建模与测试数据构建。
|
人工智能 算法 安全
深度:善用人工智能推动高等教育学习、教学与治理的深层变革
本文探讨人工智能技术与高等教育深度融合带来的系统性变革,从学习进化、教学革新与治理重构三个维度展开。生成式AI作为技术前沿代表,正通过标准化认证体系(如培生的Generative AI Foundations)提升职场人士、教育者及学生的能力。文章强调批判性思维、高阶认知能力与社交能力的培养,主张教师从经验主导转向数据驱动的教学模式,并提出构建分布式治理结构以适应技术迭代,最终实现人机协同的教育新生态,推动高等教育在智能时代焕发人性光辉。
|
AI芯片
AIGC视频生成/编辑技术调研报告
随着图像生成领域的研究飞速发展,基于diffusion的生成式模型取得效果上的大突破。在图像生成/编辑产品大爆发的今天,视频生成/编辑技术也引起了学术界和产业界的高度关注。该分享主要介绍视频生成/编辑的研究现状,包括不同技术路线的优劣势,以及该领域当下面临的核心问题与挑战。
2221 3
AIGC视频生成/编辑技术调研报告
|
11月前
微信封号脚本插件,全自动批量投诉工具, vx隔空抓包封号思路【仅供学习参考用途】
这是一款针对微信投诉自动化处理的工具插件,通过模拟点击操作实现批量投诉功能。相比手动投诉,该插件效率更高、成功率更有保障。
|
10月前
|
Linux 虚拟化 iOS开发
macOS Tahoe 26 beta 3 (25A5306g) ISO、IPSW、PKG 下载
macOS Tahoe 26 beta 3 (25A5306g) ISO、IPSW、PKG 下载
290 0
|
负载均衡 Java API
Java一分钟之-Spring Cloud OpenFeign:声明式服务调用
【6月更文挑战第9天】Spring Cloud OpenFeign是声明式服务调用库,简化了微服务间调用。通过动态代理,它允许开发者用Java接口调用HTTP服务,支持服务发现、负载均衡。本文介绍了OpenFeign的基本概念,展示了如何添加依赖、开启客户端和定义服务接口。还讨论了接口调用失败、超时重试和日志配置等问题及其解决方案,并提供了自定义Feign配置的代码示例。通过学习,读者可以更好地在微服务架构中使用OpenFeign进行服务通信。
813 4
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能】Foxmail邮箱在人工智能领域的应用方法及代码解析
Foxmail邮箱作为一款流行的邮件客户端软件,主要用于个人和企业的邮件收发、管理等功能。虽然它与人工智能(AI)技术有着潜在的融合点,但直接关于Foxmail邮箱在人工智能方面的应用代码并不是常规的讨论内容,因为邮箱客户端本身并不直接包含复杂的AI算法或代码。
1377 58
|
JSON API 数据安全/隐私保护
Django 后端架构开发:JWT 项目实践与Drf版本控制
Django 后端架构开发:JWT 项目实践与Drf版本控制
629 0