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:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于java+springboot+vue实现的火车票订票系统(文末源码+Lw)294

摘要 火车票订票系统可以对火车票订票系统信息进行集中管理,可以真正避免传统管理的缺陷。火车票订票系统是一款运用软件开发技术设计实现的应用系统,在信息处理上可以达到快速的目的,不管是针对数据添加,数据维护和统计&#xf…

HAproxy反向代理与负载均衡

目录 一、HAproxy介绍 1. 概述 2. 关于4/7层负载均衡 2.1 无负载均衡 2.1.1 图示 2.1.2 说明 2.2 四层负载均衡 2.2.1 图示 2.2.2 说明 2.3 七层负载 2.3.1 图示 2.3.2 说明 3. 特性 4. HAProxy负载均衡常见策略 5. 处理模式 二、HAproxy安装 1. yum安装 2. 第…

3月11日代码随想录电话号码的字母组合

17.电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits &q…

mysql的索引、事务、分库分表问题

1.了解MySQL的索引吗?它为什么使用Btree作为底层,而不是其他呢? 这里我们要谈的是其他数据结构的缺点,然后说说Btree的优点,也就看你对MySQL的Btree与其他数据结构熟不熟悉。 Hash (1)Hash 索引…

[HackMyVM]靶场 Espo

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Un…

openAI key 与ChatGPTPlus的关系,如何升级ChatGPTPLus

一、前言 先详细介绍一下Plus会员和Open API之间的区别: 实际上,这两者是相互独立的。举例来说,虽然您开通了Plus会员,并不意味着您就可以使用4.0版本的API。尽管这两个账户可以是同一个,但它们是完全独立的平台。 …

rocketmq学习笔记(一)安装部署

初次使用rocketmq,记录一下全流程步骤。 1、下载安装包 首先在官网,下载安装包,可也根据官方文档进行部署,但有一些细节没说明,可能会有坑,本文会尽量详细的描述每个步骤,把我踩过的坑填补上。…

后端八股笔记------Redis

Redis八股 上两种都有可能导致脏数据 所以使用两次删除缓存的技术,延时是因为数据库有主从问题需要更新,无法达到完全的强一致性,只能达到控制一致性。 一般放入缓存中的数据都是读多写少的数据 业务逻辑代码👇 写锁&#x1f4…

基础 | JVM - [指令 性能监控]

INDEX jps(jvm 进程工具)jinfo(java 配置信息工具)jstack (查看虚拟机栈信息)jmap(jvm 内存影像工具)jstat(jvm 统计信息监控工具)jvisualvm(查看…

【NR 定位】3GPP NR Positioning 5G定位标准解读(十)-增强的小区ID定位

前言 3GPP NR Positioning 5G定位标准:3GPP TS 38.305 V18 3GPP 标准网址:Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读(一)-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读(…

对比才有伤害!ChatGPT 4.0 VS Claude 3,这就是ChatGPT偷懒变慢的根本原因!附解决方案

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

每日一练:LeeCode-56、合并区间【数组+滑动窗口】

4.合并区间 LeeCode-56、合并区间 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 1 < intervals.le…

Math类 --Java学习笔记

Math 代表数学&#xff0c;是一个工具类&#xff0c;里面提供的都是对数据进行操作的一些静态方法 Math提供的常用方法

C语言分析基础排序算法——交换排序

目录 交换排序 冒泡排序 快速排序 Hoare版本快速排序 挖坑法快速排序 前后指针法快速排序 快速排序优化 快速排序非递归版 交换排序 冒泡排序 见C语言基础知识指针部分博客C语言指针-CSDN博客 快速排序 Hoare版本快速排序 Hoare版本快速排序的过程类似于二叉树前序…

安卓玩机工具推荐----MTK芯片读写分区 备份分区 恢复分区 制作线刷包 工具操作解析

安卓玩机工具推荐----高通芯片9008端口读写分区 备份分区 恢复分区 制作线刷包 工具操作解析 安卓玩机工具推荐----ADB状态读写分区 备份分区 恢复分区 查看分区号 工具操作解析 前面做了两期教程。分别解析了下ADB端口与高通9008端口备份分区一些基础的常识&#xff0c;那么…

【探索程序员职业赛道:挑战与机遇】

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

EMC技术:基础概念到应用的解读?|深圳比创达电子

电磁兼容性&#xff08;Electromagnetic Compatibility&#xff0c;简称EMC&#xff09;作为一项重要的技术领域&#xff0c;在现代电子设备中扮演着至关重要的角色。本文将从基础概念开始&#xff0c;逐步深入探讨EMC技术的原理、应用和意义。 一、EMC的基础概念 EMC是指电子…

ELFK 分布式日志收集系统

ELFK的组成&#xff1a; Elasticsearch: 它是一个分布式的搜索和分析引擎&#xff0c;它可以用来存储和索引大量的日志数据&#xff0c;并提供强大的搜索和分析功能。 &#xff08;java语言开发&#xff0c;&#xff09;logstash: 是一个用于日志收集&#xff0c;处理和传输的…

收割机案例-简单的动态规划

#include<iostream> using namespace std; // 创建土地 short land[32][32]; short n,m;// 实际使用的土地大小 short landA[32][32];//用A收割机收割数量记录 short landB[32][32];// 用B收割机收割数量记录 int main(){cin>>n>>m;// 存储农作物产量for(sho…

C#,子集和问题(Subset Sum Problem)的算法与源代码

1 子集和问题&#xff08;Subset Sum Problem&#xff09; 给定一组非负整数和一个值和&#xff0c;确定给定集合中是否存在和等于给定和的子集。 示例&#xff1a; 输入&#xff1a;set[]{3&#xff0c;34&#xff0c;4&#xff0c;12&#xff0c;5&#xff0c;2}&#xff…