【机器学习】Jupyter Notebook如何使用之基本步骤和进阶操作
引言
Jupyter Notebook 是一个交互式计算环境,它允许创建包含代码、文本和可视化内容的文档
文章目录
- 引言
- 一、基本步骤
- 1.1 启动 Jupyter Notebook
- 1.2 使用 Jupyter Notebook 仪表板
- 1.3 在笔记本中工作
- 1.4 常用快捷键
- 1.5 导出和分享笔记本
- 二、进阶用法
- 2.1 组织笔记本结构
- 2.2 编写清晰的代码
- 2.3 使用魔术命令
- 2.4 管理单元格输出
- 2.5 使用交互式小部件
- 2.6 代码单元格管理
- 2.7 利用扩展功能
- 2.8 数据分析最佳实践
- 2.9. 资源管理
- 2.10 安全性和隐私
一、基本步骤
以下是使用 Jupyter Notebook 的一些基本步骤:
1.1 启动 Jupyter Notebook
- 打开命令行(终端):
在 Windows 上,可以使用命令提示符或 Anaconda Prompt,在 macOS 或 Linux 上,使用终端 - 导航到工作目录:
使用cd
命令导航到想保存笔记本的目录 - 启动 Jupyter Notebook:
输入以下命令并按回车:
jupyter notebook
这将启动 Jupyter 服务器,并在默认的 Web 浏览器中打开 Jupyter Notebook 的仪表板,如图所示:
1.2 使用 Jupyter Notebook 仪表板
仪表板显示了当前目录下的文件和文件夹,以下是一些基本操作:
-
新建笔记本:点击右上角的“新建”按钮,选择 Python3 或其他想使用的内核来创建一个新的笔记本、文件夹或终端
-
打开笔记本:点击已存在的笔记本文件名,如图所示:
-
重命名笔记本:点击笔记本文件名旁边的复选框,然后点击“重命名”按钮,如图所示:
-
删除笔记本:选择笔记本,然后点击“删除”按钮,如图所示:
1.3 在笔记本中工作
一旦打开或创建了一个笔记本,可以开始编写代码和文本
- 添加新单元格:点击“+”按钮或使用菜单中的“插入”选项来添加新单元格
- 选择单元格类型:
- 代码(Code):用于编写和执行代码
- Markdown:用于编写格式化的文本和内联的 LaTeX 数学表达式
- 原始NBConvert:用于原始文本
- 编辑单元格:点击单元格,开始输入文本或代码
- 运行单元格:
- 按下
Shift + Enter
来运行当前单元格并选择下面的单元格 - 按下
Alt + Enter
来运行当前单元格并在下面插入一个新单元格 - 按下
Ctrl + Enter
来运行当前单元格而不移动焦点
- 按下
- 保存笔记本:使用菜单中的“文件”选项,然后选择“保存和检查点”或使用快捷键
Ctrl + S
1.4 常用快捷键
Shift + Enter
:运行当前单元格,选择下面的单元格Alt + Enter
:运行当前单元格,并在下面插入一个新单元格Ctrl + Enter
:运行当前单元格A
:在上方插入新单元格B
:在下方插入新单元格D + D
(两次D):删除选中的单元格M
:将当前单元格转换为 Markdown 单元格Y
:将当前单元格转换为代码单元格
1.5 导出和分享笔记本
- 导出:可以将笔记本导出为多种格式,如 HTML、PDF、Markdown 或纯 Python 脚本
- 分享:Jupyter Notebook 可以通过电子邮件、Dropbox、GitHub 或其他在线平台轻松分享
通过这些基本步骤,可以开始使用 Jupyter Notebook 进行数据探索、分析、可视化以及教学和学习
二、进阶用法
遵循以下实践和建议,以提高工作效率和代码质量
2.1 组织笔记本结构
- 使用Markdown单元格:为笔记本添加清晰的标题、子标题和章节描述,使用Markdown格式来提高可读性
- 分割内容:将笔记本分割成不同的部分,每个部分使用Markdown单元格进行说明,然后是相应的代码单元格
- 使用目录:对于较长的笔记本,可以在顶部创建一个目录,方便快速导航
2.2 编写清晰的代码
- 遵循PEP 8:遵守Python编码标准PEP 8,保持代码格式一致
- 使用注释:在代码单元格中添加注释,解释复杂的逻辑或重要的步骤
- 避免冗余:删除不再需要的代码,保持笔记本整洁
2.3 使用魔术命令
- %matplotlib inline:用于在笔记本中内联显示图表
- %load_ext:加载扩展,如
line_profiler
用于性能分析 - %timeit:测量代码执行时间
2.4 管理单元格输出
- 清除输出:使用“单元格”菜单中的“全部清除输出”来清理笔记本
- 禁用代码输出:在代码单元格后面添加一个分号
;
来阻止输出显示 - 折叠长输出:对于长输出,使用
out = _
(下划线)来保存输出,而不立即显示
2.5 使用交互式小部件
- ipywidgets:使用
ipywidgets
库创建滑块、下拉菜单和其他交互式小部件,使笔记本更加动态
2.6 代码单元格管理
- 单元格合并:使用“编辑”菜单中的“合并单元格”来合并多个单元格
- 单元格拆分:将一个单元格拆分成多个单元格,以细化代码块
2.7 利用扩展功能
- 安装扩展:使用
nbextensions
来安装和启用Jupyter Notebook扩展,如代码折叠、预览Markdown等 - 使用Nbextensions:例如,
Table of Contents (2)
可以自动生成目录
2.8 数据分析最佳实践
- 使用Pandas:高效处理数据集
- 可视化:使用Matplotlib、Seaborn或Plotly进行数据可视化
- 版本控制:使用
git
进行版本控制,注意.ipynb_checkpoints
目录不应被提交到版本库
2.9. 资源管理
- 关闭未使用的内核:在Jupyter Dashboard中关闭不再需要的内核,释放资源
- 定期保存:定期保存笔记本,避免数据丢失
2.10 安全性和隐私
- 避免在笔记本中保存敏感数据:不要在笔记本中保存密码或敏感信息
- 使用JupyterHub:在多用户环境中使用JupyterHub来管理用户访问和资源
通过以上建议,可以更加优雅和高效地使用Jupyter Notebook,不仅提高个人工作效率,也能使笔记本更加易于理解和分享
相关文章:

【机器学习】Jupyter Notebook如何使用之基本步骤和进阶操作
引言 Jupyter Notebook 是一个交互式计算环境,它允许创建包含代码、文本和可视化内容的文档 文章目录 引言一、基本步骤1.1 启动 Jupyter Notebook1.2 使用 Jupyter Notebook 仪表板1.3 在笔记本中工作1.4 常用快捷键1.5 导出和分享笔记本 二、进阶用法2.1 组织笔…...

C++ | Leetcode C++题解之第279题完全平方数
题目: 题解: class Solution { public:// 判断是否为完全平方数bool isPerfectSquare(int x) {int y sqrt(x);return y * y x;}// 判断是否能表示为 4^k*(8m7)bool checkAnswer4(int x) {while (x % 4 0) {x / 4;}return x % 8 7;}int numSquares(i…...
Vue 3 响应式高阶用法之 `shallowRef()` 详解
Vue 3 响应式高阶用法之 shallowRef() 详解 文章目录 Vue 3 响应式高阶用法之 shallowRef() 详解简介一、使用场景1.1 深层嵌套对象的性能优化1.2 需要部分响应式的场景 二、基本使用2.1 引入 shallowRef2.2 定义 shallowRef 三、功能详解3.1 浅层响应式3.2 与 ref 的对比 四、…...

流量录制与回放:jvm-sandbox-repeater工具详解
在软件开发和测试过程中,流量录制与回放是一个非常重要的环节,它可以帮助开发者验证系统在特定条件下的行为是否符合预期。本文将详细介绍一款强大的流量录制回放工具——jvm-sandbox-repeater,以及如何利用它来提高软件测试的效率和质量。 …...

内网渗透—内网穿透工具NgrokFRPNPSSPP
前言 主要介绍一下常见的隧道搭建工具,以此来达到一个内网穿透的目的。简单说一下实验滴环境吧,kali作为攻击机,winserver2016作为目标靶机。 kali 192.168.145.171 winserver2016 10.236.44.127 显然它们处于两个不同的局域网,…...

嵌入式中传感器数据处理方法
大家好,在传感器使用中,我们常常需要对传感器数据进行各种整理,让应用获得更好的效果,以下介绍几种常用的简单处理方法: 加权平滑:平滑和均衡传感器数据,减小偶然数据突变的影响。 抽取突变:去除静态和缓慢变化的数据背景,强调瞬间变化。 简单移动平均线:保留数据流最…...

生成式 AI 的发展方向,是 Chat 还是 Agent?
据《福布斯》报道,商业的未来是自动化。他们报告说,自动化的应用是不可避免的,“工人们即将被一个圈子和一套规则包围,要严格遵守,不能偏离。得益于聊天机器人ChatGPT于2022年11月推出所带来的强劲加持,202…...

金字塔监督在人脸反欺骗中的应用
介绍 论文地址:https://arxiv.org/pdf/2011.12032.pdf 近年来,人脸识别技术越来越普及。在智能手机解锁和进出机场时,理所当然地会用到它。人脸识别也有望被用于管理今年奥运会的相关人员。但与此同时,人们对人脸欺骗的关注度也…...
vue3——两种利用自定义指令实现防止按钮重复点击的方法
方法一:利用定时器设置时间,下方代码设置时间为1秒 但是有个缺点:请求如果很慢,1秒钟还没有好,那么该方法就没用了 // 利用定时器:1秒之后才能再次点击app.directive(preventReClick, {mounted: (el, bind…...

Chrome谷歌浏览器Console(控制台)显示文件名及行数
有没有这样的困扰?Chrome谷歌浏览器console(控制台)不显示编译文件名及行数? 设置(Settings)- > 忽略列表(lgnore List)-> 自定义排除规则(Custom exclusion rules) 将自定义排除规则…...

Vue3+Element Plus 实现table表格中input的验证
实现效果 html部分 <template><div class"table"><el-form ref"tableFormRef" :model"form"><el-table :data"form.detailList"><el-table-column type"selection" width"55" align&…...

安宝特方案|解放双手,解决死角,AR带来质量监督新体验
AR质量监督 解放双手,解决死角 在当今制造业快速发展的背景下,质量监督成为确保产品高质量和完善的管理制度的关键环节。然而,传统的质量监督方式存在诸多挑战,如人工操作带来的效率低下、查岗不及时、摄像头死角等问题。 为了解…...
Django教程(005):基于ORM操作数据库的部门管理系统
文章目录 1、功能介绍2、新建项目3、创建app4、 表结构创建6、生成表7、静态文件管理8、部门管理8.1、部门列表8.2、添加部门8.3、删除部门8.4、编辑部门9、员工管理9.1、员工列表9.2、使用ModelForm添加员工9.3、编辑员工9.4、删除员工10、完整代码下载地址1、功能介绍 部门添…...

git等常用工具以及cmake
一、将git中的代码克隆进电脑以及常用工具介绍 1.安装git 首先需要安装git sudo apt install git 注意一定要加--recursive,因为文件中有很多“引用文件“,即第三方文件(库),加入该选项会将文件中包含的子模…...

Mybatis(四)特殊SQL的查询:模糊查询、批量删除、动态设置表明、添加功能获取自增的主键
实体类: 数据库: 1、模糊查询 方案一: 不适用#{ },’%?%‘ 问号是属于字符串的一部分 不会被解析成占位符,会被当作是我们字符串的一部分来解析,所以我们执行的语句中找不到占位符,但是我们却…...
JS原型与原型链
JS原型与原型链 JavaScript中一切引用类型都是对象,对象就是属性的集合。 Array类型、Function类型、Object类型、Date类型、RegExp类型等都是引用类型。 原型是什么 总计一句话就是(继承里的父亲,你可以使用你的原型里的函数)…...
Python编程学习第一篇——Python零基础快速入门(六)(4)异常处理
我们已经了解了Python的基本数据类型、变量和基本的逻辑控制语句,基于这些基础知识可以编写一些小程序了,但是在写程序的时候我们会发现,有时候程序并不是按我们预期的方向执行,有的直接报错,有的没有报错,…...

GraphHopper-map-navi_路径规划、导航(web前端页面版)
文章目录 一、项目地址二、踩坑环境三、问题记录3.1、graphhopper中地图问题3.1.1. getOpacity不存在的问题3.1.2. dispatchEvent不存在的问题3.1.3. vectorLayer.set(background-maplibre-layer, true)不存在set方法3.1.4. maplibre-gl.js.map不存在的问题3.1.5. Uncaught Ref…...

2-46 基于matlab的声音信号的短时能量、短时过零率、端点检测
基于matlab的声音信号的短时能量、短时过零率、端点检测。通过计算计算短时能量、调整能量门限,然后开始端点检测。输出可视化结果。程序已调通,可直接运行。 2-46 短时能量 短时过零率 端点检测 - 小红书 (xiaohongshu.com)...
力扣630.课程表 II
力扣630.课程表 II 反悔堆 将课程按照结束时间从大到小排序每次取一个判断当前是否能学完该课程如果能学完就将持续时间加入堆 更新答案如果学不完就判断该课程持续时间是否比之前学过的最大的还大 用时更短的话就将旧的弹出 class Solution {public:int scheduleCourse(ve…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...