Jupyter Notebook使用教程——从Anaconda环境构建到Markdown、LaTex语法介绍

0. 前言

按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果,但是内容可能存在不准确的地方。如果发现文中错误,希望批评指正,共同进步。

你是否在视频教程或说明文档或Github或其他场景中见过下面这类东东?

在这里只要在[in]中输入代码,在[out]中就会即时显示输出,更关键的是不用安装任何IDE就可以直接运行代码!这个牛13哄哄的东东就是——Jupyter Notebook。

 IDE,集成开发环境(Integrated Development Environment)是一种综合性的应用程序,它集成了代码编写、编译、调试、版本控制、项目管理和构建工具等多种功能于一身,为开发者提供了一个便捷高效的一站式开发平台,例如下面这些“编写语言的软件”:

本文将系统地介绍Jupyter Notebook的使用方法,涵盖:Anaconda的环境构建、数据库导入、Markdown语法、Jupyter Notebook使用实例、.ipynb文件导入等几个方面。

本文的介绍全部通过图形界面进行,没有命令提示符窗口操作

1. Jupyter Notebook

1.1 Jupyter Notebook简介

Jupyter是一个开源的交互式计算环境,它允许用户创建和共享包含实时代码、方程式、可视化图表和文本说明的文档。这些文档通常被称为“Notebooks”,它们是一个基于Web的应用程序,可以在浏览器中运行,并支持超过40种编程语言,包括但不限于Python、R、Julia等。

Jupyter Notebook融合了实时代码执行、富文本编辑、数据可视化和数学公式支持等功能于一体。用户可在不安装任何软件的前提下,使用单一网页界面编写、运行多种编程语言的代码,并即时查看输出结果。它支持Markdown文档撰写,有利于项目协作、学术研究与教学演示,通过集成众多科学计算库加强了数据科学工作流的效率。Jupyter Notebook有以下好处:

  • 编写可执行代码:在单元格内编写代码片段,实时查看结果;
  • 交互式数据分析:对数据进行清理、转换、探索性分析及可视化;
  • 动态报告:将代码、文字、数学公式和图形结合在一起,形成丰富的文档,便于协作和演示;
  • 教学与学习资源:作为教材或教程,方便学生直接在文档中运行示例代码并观察输出;
  • 版本控制与分享:Notebooks 可以通过GitHub等工具进行版本控制,并方便地分享给他人审阅或复现研究结果;

Jupyter 还拥有强大的生态系统,其中包括 JupyterLab,这是一个下一代交互式开发环境,提供了更为灵活和模块化的界面来处理Notebooks以及其他文件类型。此外,JupyterHub 和 Binder 等项目则支持多用户环境和基于云的Notebook托管服务。

1.2 Jupyter Notebook启动方式

Jupyter Notebook启动有以下两种方式:

①不安装任何软件,直接通过Jupyter官网试用网页版:Intro (jupyter.org)

②先安装Anaconda,然后通过本地应用打开Jupyter Notebook:

启动后也是在网页中,点击“New-->Notebook-->选择kernel”即可创建新的Notebook文档:

这里需要解释下Jupyter Notebook中的kernel:

在Jupyter Notebook(以及其后续版本JupyterLab)中,Kernel是指运行和执行用户代码的计算后端。当你打开一个Notebook并开始编写代码时,Notebook并不是直接执行这些代码,而是通过与一个后台进程(即Kernel)进行通信来执行和获取结果。

具体来说,Kernel代表了一个特定编程语言的解释器或编译器环境,例如Python、R、Julia等。每个Kernel都对应着一个独立的运行环境,其中包含了所有相关的库和依赖包。

这里我推荐通过第②种方法启动Jupyter Notebook,但是可能就有同学会困惑了:上面不是说使用Jupyter Notebook的好处是可以避免安装IDE吗?下面是我自己总结的先安装Anaconda的好处:

  • 相比通过Jupyter官网进入试用版,通过本地安装启动Notebook代码运行更快(试用版经常会卡住不动);
  • 相比IDE的安装,Anaconda的安装及配置要容易得多(反正对于环境管理等方面,Anaconda都是必须的);
  • 试用版Notebook有很多限制,例如不能上传和打开Jupyter Notebook生成的.ipynb文件

2. Anaconda

Anaconda 是一个开源的数据科学平台,它提供了一个强大的软件包管理系统——Conda,用于简化包的安装、管理和环境配置。

可以把Anaconda理解为大规模数据处理、机器学习、数据分析等相关软件的“APP Store”。

2.1 Anaconda安装

Anaconda可以通过官网免费下载使用:Free Download | Anaconda

安装后就可以看到软件全家桶:

在Jupyter Notebook下点击“Install”,安装成功后点击“launch”就可以启动Notebook了。

  →      

2.2 虚拟环境创建

虚拟环境在软件开发中扮演着至关重要的隔离角色,它通过创建独立的Python运行环境来确保不同项目之间不会因为依赖库版本冲突而相互影响。每个虚拟环境都有自己的一份Python解释器副本和独立的第三方包安装目录,使得开发者能够为每个项目配置特定版本的库和工具,从而保证项目的可重复构建与部署,并且简化了多项目并行开发时的依赖管理。

在Anaconda Navigator中创建虚拟环境的操作如下:

这里可以看到我已经有了4个环境:

  • base(root)这个是默认环境,不用创建
  • DL
  • pytorch
  • anaconda3

大家可以按照需求创造自己的环境。

注意:在上面启动Jupyter Notebook时也需要注意是从哪个虚拟环境launch的:

因为不同的虚拟环境下会配置有不同的第三方库

2.3 安装第三方库

即便Jupyter Notebook是基于网页的交互式计算环境,但是在使用前还是需要安装第三方库,否则就会像下面这样:

这就是因为没有先安装'torch'库导致的。

安装第三方库的过程如下:

安装成功后再运行就OK了~

3. Markdown

3.1 Markdown简介

Markdown 是一种轻量级的标记语言,并通过易读易写的纯文本格式实现对文档结构和样式的控制。Markdown 的设计目的是让用户可以专注于内容本身,而非复杂的排版样式,同时其语法简单明了,方便快捷地转换为结构化的HTML、PDF等多种格式。

在Jupyter Notebook中可以选择当前的输入框是想输入文本(Markdown)还是代码:

3.2 Markdown的常用语法

①标题:
使用 `#` 符号表示不同级别的标题,例如:

# 一级标题
## 二级标题
...
###### 六级标题

②段落与换行:
段落之间使用一个空行进行分隔。如果需要在同一行内强制换行,可以在行尾添加两个或多个空格后回车。

③强调:

斜体:使用星号 `*` 或下划线 `_` 包围文字,例如:`*斜体*` 或 `_斜体_`。

加粗:使用两个星号 `**` 或两个下划线 `__` 包围文字,例如:`**加粗**` 或 `__加粗__`。

④引用:

使用大于号 `>` 引领一行或多行文本以创建引用块,嵌套引用则连续使用多个 `>`。

⑤列表:

无序列表:每项前使用 `-`、`+` 或 `*` 开头,如:

- 列表项一
- 列表项二
- 列表项三

有序列表:数字加`.`,如:

1. 第一项
2. 第二项

⑥链接:

直接链接: `[链接文本](链接地址)`,例如:`[Google](https://www.google.com)`

参考式链接: `[链接文本][引用名称]` 在文档任意位置定义 `[引用名称]: 链接地址`。

⑦图片:

图片插入类似链接语法,但在方括号后面加上感叹号 `!`,例如:`![图片描述](图片URL)`

⑧水平线:

通过在一行中输入三个或以上的 `-`、`*` 或 `_` 来创建水平分割线。

4. LaTex

4.1 LaTex介绍

在数学、科技和教育领域,输入公式的语言通常指的是用来描述和展示数学公式、符号以及科学表达式的方法。其中最常见的是LaTeX,它是一种基于TeX的文字处理系统,专门用于排版数学公式、论文和技术文档。

4.2 LaTex的常用语法

关于LaTex编辑公式的内容实在太多,这里不再赘述,引用一篇参考文章:使用CSDN的MarkDown编辑公式_csdn如何打分母分子-CSDN博客

5. Jupyter Notebook使用实例

掌握了上述步骤后,我们就可以写自己的酷炫Notebook文档啦~

点击“Run All Cells”

就会生成下面的文档:

最后别忘了保存好自己的Notebook:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/447433.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TC7.0简单编程十六进制跟十进制转化函数

写脚本的时候,没用内存的功能什么的,基本跟十六进制用得都比较少。最近因为易语言的一个代码要转化过来,看到易语言里面有现成的函数 16到10 跟10 到16,就想着TC是否也有这样的函数。找来找去没找到。其实TC也有这样的函数来的。藏…

misc49

下载附件是个txt文件,打开发现是个压缩包的头 后缀改成zip后打开 base解码无果,我们尝试字母解码 然后音符解码得到 ❀✿✼❇❃❆❇✿❁❇✻✿❀✾✿✻❀❊❆❃❀❊✻❅❀❄✼❂❊❊✾❇❁✽✽✼❁❂❀❀❀❉❃❂❀❉❃❂❊❊✾✼✻✻❀❆✻✻❀❀✻✻✿…

C#MQTT编程10--MQTT项目应用--工业数据上云

1、文章回顾 这个系列文章已经完成了9个内容,由浅入深地分析了MQTT协议的报文结构,并且通过一个有效的案例让伙伴们完全理解理论并应用到实际项目中,这节继续上马一个项目应用,作为本系列的结束,奉献给伙伴们&#x…

Visual Studio单步调试中监视窗口变灰的问题

在vs调试中,写了这样一条语句 while((nfread(buf, sizeof(float), N, pf))>0) 然而,在调试中,只要一执行while这条语句,监视窗口中的变量全部变为灰色,不能查看,是程序本身并没有报错,能够继…

简单了解一个数据包在网络的一生

在主题之前,我想先谈谈目前计算机的网络模型,主要谈谈 TCP/IP 模型: 应用层:产生最原始的数据,常见协议如 http、ftp、websocket、DNS、QUIC 传输层:传递应用层的数据给网络层,必要时进行切割&…

[Angular 基础] - 表单:响应式表单

[Angular 基础] - 表单:响应式表单 之前的笔记: [Angular 基础] - routing 路由(下) [Angular 基础] - Observable [Angular 基础] - 表单:模板驱动表单 开始 其实这里的表单和之前 Template-Driven Forms 没差很多,不过 Tem…

从16-bit 到 1.58-bit :大模型内存效率和准确性之间的最佳权衡

通过量化可以减少大型语言模型的大小,但是量化是不准确的,因为它在过程中丢失了信息。通常较大的llm可以在精度损失很小的情况下量化到较低的精度,而较小的llm则很难精确量化。 什么时候使用一个小的LLM比量化一个大的LLM更好? 在本文中&a…

C 嵌套循环

C 语言允许在一个循环内使用另一个循环,下面演示几个实例来说明这个概念。 语法 C 语言中 嵌套 for 循环 语句的语法: for (initialization; condition; increment/decrement) {statement(s);for (initialization; condition; increment/decrement){s…

Java项目修改源码jar文件(无需反编译)

文章目录 应用场景实现方案实现原理注意事项 应用场景 在项目中用了第三方的jar包,但是jar包内某个类不符合项目业务需求,需要修改第三方jar包源码文件内容。 实现方案 首先我们尝试直接修改jar包源码文件内容时,页面上会提示文件是只读的&a…

【Java】生成条形码工具类

报销单需要根据单号生成条形码 先看效果图 直接上代码,复制即可使用 /*** Description:生成条形码*/ public class BarCodeUtils {/*** 默认图片宽度*/private static final int DEFAULT_PICTURE_WIDTH 300;/*** 默认图片高度*/private static final int DEFAULT_…

Python SSH协议库之paramiko使用详解

概要 在网络编程中,远程操作是一项非常常见的需求,特别是在服务器管理和自动化任务执行方面。Python提供了许多库来实现远程操作,其中Paramiko是一个备受欢迎的选择。Paramiko是一个纯Python编写的SSH协议库,它提供了一种简单而强大的方式来执行远程命令、上传和下载文件等…

Consul服务注册与发现

Consul服务注册与发现 1、为什么不再使用传统的Eureka? Eureka停更进维护;Eureka对初学者还是不太友好的,它还有自我保护模式;注册中心独立且与微服务各功能解耦是大势所趋,目前主流服务中心,希望单独隔离…

深入理解java之网络编程

目录: 网络编程基本概念计算机网络网络通信协议数据封装与解封IP地址TCP协议和UDP协议 Java网络编程中的常用类InetAddress的使用InetSocketAddress的使用URL的使用TCP通信的实现和项目案例TCP通信入门案例UDP通信的实现和项目案例UDP通信入门案例 网络编程基本概念…

片上网络(NoC)技术的发展及其给高端FPGA带来的优势

片上网络(NoC)技术的发展及其给高端FPGA带来的优势 1. 概述 在摩尔定律的推动下,集成电路工艺取得了高速发展,单位面积上的晶体管数量不断增加。 片上系统(System-on-Chip,SoC)具有集成度高、功耗低、成本低等优势,已经成为大规模集成电路系统设计的主流方向,解决了…

自媒体新人该如何开始

作为一个准备踏入自媒体领域的新手,面对一片陌生的领域可能让你感到有点手足无措,就好比是第一次学游泳,心里有些许的恐惧和不确定。同样的,当你第一次学骑自行车,也是一样的陌生,如果学会这些并熟练之后&a…

一文了解原型和原型链

本文重点概念: 1、所有的对象都是new一个函数创建的 2、所有的函数都有一个属性prototype,称为函数原型 3、函数原型得到的这个对象都有一个属性constructor,指向该函数 4、所有的对象都有一个属性:隐式原型__proto__,隐式原型…

pyqt线程正确使用

PyQt之科学使用线程处理耗时任务以及线程通信方法 上面这篇文章看似很科学… 经过实际测试,需要按下面创建线程: self.work EmailWork() self.thread QtCore.QThread() self.thread.start()self.work.moveToThread(self.thread) self.work.complete_…

java应用整合fastdfs实现文件 上传及下载

java应用整合fastdfs实现文件 上传及下载 对于fastdfs的安装部署请参阅另一篇博文:fastdfs安装篇 本篇主要讲在springboot项目中如何整合fastdfs实现文件上传 下载 及删除, 项目demo gitee 地址:git clone https://gitee.com/JackSong2019/f…

C++第一弹---C++入门(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 【C详解】 C入门 1、C关键字(C98) 2、命名空间 2.1、命名空间定义 2.2、命名空间使用 3、C输入&输出 4、缺省参数 4.1、缺省参数概念 4.2、缺省参…

酷开科技利用自身优势量身定制个性化营销创意

随着人工智能、大数据、物联网、区块链等技术的发展,去中心化、碎片化、社交化、全链条可追踪的趋势将越来越明显。广告主对于投放的每一分钱都会有更高性价比、更精准效果的追求。业精于专成于势,酷开系统专注构建开放统一的超级智能系统生态&#xff0…