交互编程工具之——Jupyter

Jupyter 是什么?

Jupyter 是一个开源的交互式编程和数据分析工具,广泛应用于数据科学、机器学习、教育和研究领域。其核心是 Jupyter Notebook(现升级为 JupyterLab),允许用户在一个基于浏览器的界面中编写代码、运行代码、可视化结果,并添加富文本(如 Markdown)进行说明,形成可重复、可分享的文档。


Jupyter核心特点

  1. 交互式编程
    • 支持逐行或分块执行代码,实时查看结果(如图表、表格、文本等)。
    • 特别适合探索性数据分析(EDA)和快速原型开发。
  2. 多语言支持
    • 原生支持 Python(最常用),通过安装内核(kernel)可扩展至 R、Julia、Scala、JavaScript 等 40+ 种语言。
  3. 富文本与可视化
    • 支持 Markdown、LaTeX、HTML 编写文档,结合代码和说明(如数学公式、图片)。
    • 集成 Matplotlib、Plotly、Bokeh 等可视化库,直接显示图表。
  4. 跨平台与云端集成
    • 可在本地或远程服务器运行,支持 Docker 部署。
    • 与 Google Colab、Kaggle Notebooks、JupyterHub 等云端平台无缝衔接。

主要应用场景

  • 数据分析与可视化
    清洗数据、生成统计图表、探索数据模式。
  • 机器学习与模型开发
    训练模型、调参、实时验证结果。
  • 教育与协作
    创建教学材料,分享可交互的代码示例。
  • 学术研究
    记录实验过程,生成可复现的研究报告。

Jupyter 的核心组件

  1. Jupyter Notebook
    • 经典的单文档界面,适合简单项目。
  2. JupyterLab
    • 新一代集成开发环境(IDE),支持多标签页、文件管理、终端、调试器等模块化布局。
  3. JupyterHub
    • 多用户服务,用于团队或教育机构的集中管理(如大学课程)。

基本使用步骤

  1. 安装
pip install jupyterlab  # 安装 JupyterLab
  1. 启动
jupyter lab  # 启动 JupyterLab
  1. 创建 Notebook
    • 选择内核(如 Python)并新建 Notebook(.ipynb 文件)。
    • 编写代码块(Cell)或 Markdown 文本,按 Shift+Enter 执行。

扩展功能

  • 插件系统:通过扩展(如 jupyter_contrib_nbextensions)添加目录、代码折叠等功能。
  • Magic 命令:使用 %%% 开头的特殊命令(如 %matplotlib inline 显示图表)。
  • 导出格式:支持导出为 HTML、PDF、LaTeX、Markdown 或幻灯片(Reveal.js)。

优势与不足

  • 优点
    直观的交互式开发,适合快速迭代;文档与代码结合,方便协作和展示。
  • 不足
    不适合大型项目(需结合 IDE 使用);调试功能较弱。

Jupyter Notebook(交互笔记本) 快速实战

简单来说, Jupyter Notebook 的作用就是你不需要在IDE编写代码和运行, 而可以直接在网页上编写代码并运行, 这个网页除了代码之外,还可以记录一些其他的文字,类似于一个包含文字和代码的笔记,但是这些代码是可以直接运行的。

接下来进入实际操作环节。以下是一个快速上手的 Jupyter Notebook 示例教程,涵盖安装、基础操作和常用功能:

在此之前,环境需要先安装Python。

1. 安装 Jupyter Notebook
# 使用 pip 安装
pip install jupyter
# 或使用 conda(需先安装 Anaconda/Miniconda)
conda install jupyter

这里直接安装, 使用conda 的部分可以参考:AI开发之 ——Anaconda 介绍

安装需要等待一段时间,


2. 启动 Jupyter Notebook

安装完成之后,就可以使用如下命令启动:

# 在终端输入以下命令,浏览器会自动打开
jupyter notebook


3. 界面导览

启动之后,会自动打开一个浏览器窗口, 如需要手动通过复制link 打开窗口,则可以在控制台找到对应的link ,比如:

http://localhost:8888/tree?token=c6b84e8419bf7993479541dd2a2dfed9db1011af057c6253

这里的Token 是出于安全的考量。

打开后的页面如下:

  • 主界面:文件管理页面,可创建/打开 .ipynb 文件。
  • 新建 Notebook:点击右上角 New → 选择 Python 3(或其他内核)。
  • 单元格(Cell):代码或文本的编辑单元,支持运行和切换类型。

4. 基本操作示例
示例 1:运行 Python 代码
# 在单元格中输入代码,按 Shift+Enter 运行
print("Hello Jupyter!")

输出

Hello Jupyter!

示例 2:Markdown 文本
# 这是一个标题
- 列表项 1
- 列表项 2
5. 保存与导出
  • 保存:点击工具栏保存图标(或 Ctrl+S)。
  • 导出:通过 File → Download as 导出为 .ipynb.html.pdf 等格式。

注意事项

  • 快捷键:使用 EscEnter 切换命令/编辑模式,Ctrl+Enter 运行单元格。

参考资源

  • 官方文档:jupyter.org
  • 示例库:Jupyter Notebook Gallery
  • 在线平台:Google Colab

Jupyter 是数据科学家的“瑞士军刀”,将代码、文档和可视化整合在一个界面中,极大提升工作效率和可复现性! 🚀



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

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

相关文章

使用 AIStor 和 OpenSearch 增强搜索功能

在这篇文章中,我们将探讨搜索,特别是 OpenSearch 如何帮助我们识别模式或查看不断增长的数据中的趋势。例如,如果您正在查看运营数据,如果您的服务似乎是随机的,那么您需要尽可能回溯以识别模式并找出原因。这不仅适用…

java基础学习

java基础 面向对象三大特性 特性:封装、继承、多态; 封装:对抽象的事物抽象化成一个对象,并对其对象的属性私有化,同时提供一些能被外界访问属性的方法; 继承:子类扩展新的数据域或功能&#…

MySQL | MySQL库、表的基本操作01

MySQL库、表的基本操作01 一、库操作1.1 查看数据库1.2 创建数据库1.3 选择数据库1.4 查看创建数据库的SQL语句1.5 修改数据库1.6 删除数据库 二、表操作2.1 创建数据表2.2 查看表2.3 查看表结构2.4 查看创建数据库的SQL语句2.5 修改表2.6 删除表 ⚠️MySQL版本 8.0 一、库操作…

设备唯一ID获取,支持安卓/iOS/鸿蒙Next(uni-device-id)UTS插件

设备唯一ID获取 支持安卓/iOS/鸿蒙(uni-device-id)UTS插件 介绍 获取设备唯一ID、设备唯一标识,支持安卓(AndroidId/OAID/IMEI/MEID/MacAddress/Serial/UUID/设备基础信息),iOS(Identifier/UUID),鸿蒙&am…

正点原子[第三期]Arm(iMX6U)Linux系统移植和根文件系统构建-5.3 xxx_defconfig过程

前言: 本文是根据哔哩哔哩网站上“arm(iMX6U)Linux系统移植和根文件系统构键篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。 引用: …

力扣热题 100:哈希专题三道题详细解析(JAVA)

文章目录 一、两数之和1. 题目描述2. 示例3. 解题思路4. 代码实现(Java)5. 复杂度分析 二、字母异位词分组1. 题目描述2. 示例3. 解题思路4. 代码实现(Java)5. 复杂度分析 三、最长连续序列1. 题目描述2. 示例3. 解题思路4. 代码实…

嵌入式八股文(五)硬件电路篇

一、名词概念 1. 整流和逆变 (1)整流:整流是将交流电(AC)转变为直流电(DC)。常见的整流电路包括单向整流(二极管)、桥式整流等。 半波整流:只使用交流电的正…

AI2-THOR环境下实现机器人导航、物体定位与抓取

1. 依赖安装 pip install ai2thor pip install numpy pillow opencv-python2. 验证安装 # 运行测试脚本验证安装 test_thor.py from ai2thor.controller import Controller controller Controller(scene"FloorPlan1") controller.step(action"MoveAhead"…

Nginx(详解以及如何使用)

目录 1. 什么是Nginx? 2. 为什么使用nginx? 3. 安装nginx 3.1?安装nginx的依赖插件 3.2 下载nginx ?3.3?创建一个目录作为nginx的安装路径 ?3.4?解压 ?3.5?进入解压后的目录 3.6?指定nginx的安装路径 ?3.7?编译和安装nginx 3.8 启动nginx ?…

【自动化脚本工具】Hammerspoon (Mac)

目录 1. 介绍Hammerspoon 1. 介绍Hammerspoon This is a tool for powerful automation of OS X. At its core, Hammerspoon is just a bridge between the operating system and a Lua scripting engine. What gives Hammerspoon its power is a set of extensions that expo…

2025 PHP授权系统网站源码

2025 PHP授权系统网站源码 安装教程: PHP7.0以上 先上传源码到服务器,然后再配置伪静态, 访问域名根据操作完成安装, 然后配置伪静态规则。 Ngix伪静态规则: location / { if (!-e $request_filename) { rewrite …

Javascript网页设计案例:通过PDFLib实现一款PDF分割工具,分割方式自定义-完整源代码,开箱即用

功能预览 一、工具简介 PDF 分割工具支持以下核心功能: 拖放或上传 PDF 文件:用户可以通过拖放或点击上传 PDF 文件。两种分割模式: 指定范围:用户可以指定起始页和结束页,提取特定范围的内容。固定间距:用户可以设置间隔页数(例如每 5 页分割一次),工具会自动完成分…

基于SpringBoot的民宿管理系统的设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

调用click.getchar()时Windows PyCharm无法模拟键盘输入

文章目录 问题描述解决方案参考文献 问题描述 调用 click.getchar() 时,Windows PyCharm 无法模拟键盘输入 解决方案 Run → Edit Configurations… → Modify options → Emulate terminal in output console 参考文献 Terminal emulator | PyCharm Documentati…

hugging face---transformers包

一、前言 不同于计算机视觉的百花齐放,不同网络适用不同情况,NLP则由Transformer一统天下。transformer是2017年提出的一种基于自注意力机制的神经网络架构,transformers库是hugging face社区创造的一个py库,通过该库可以实现统一…

AI大模型学习(四): LangChain(三)

Langchain构建代理 语言模型本身无法执行动作,他们只能输出文本,代理是使用大型语言模型(LLM)作为推理引擎来确定要执行的操作以及这些操作的输入应该是什么,然后这些操作的结果可以反馈到代理中,代理将决定是否需要更多的操作,或者是否可以结束 例如:我们想要查询现在北京的…

企业知识管理平台重构数字时代知识体系与智能服务网络

内容概要 现代企业知识管理平台的演进呈现出全生命周期管理与智能服务网络构建的双重特征。通过四库体系(知识采集库、加工库、应用库、评估库)的协同运作,该系统实现了从知识沉淀、结构化处理到价值释放的完整闭环。其中,知识图…

(二)趣学设计模式 之 工厂方法模式!

目录 一、 啥是工厂方法模式?二、 为什么要用工厂方法模式?三、 工厂方法模式怎么实现?四、 工厂方法模式的应用场景五、 工厂方法模式的优点和缺点六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博…

详细介绍嵌入式硬件设计

嵌入式硬件设计详解 一、嵌入式硬件设计核心概念 嵌入式硬件设计是针对特定应用场景,将处理器、存储器、外设接口等电子元件集成到电路板上,实现特定功能的系统开发过程。其核心目标是 高可靠性、低功耗、小体积 和 成本优化。 二、设计流程与关键步骤 …

goredis常见基础命令

基本操作 //删除键 exists,err: rdb.Exists(ctx,"key").Result() if err!nil{panic(err) } if exists>0{err rdb.Del(ctx,"key").Err()if err!nil{panic(err)} }string类型 //设置一个键值对 //0表示没有过期时间 err:rdb.Set(ctx,"key1",…