JupyterLab,极其强大的 10 个秘密技巧

news2024/11/24 5:38:33

之前一篇文章:整理了上千个 Python 工具库,涵盖24个大方向

没想到火了。喜欢的可以看一下。

今天我给大家分享一下 Jupyter Lab 的一些内容。

JupyterLab 是 Jupyter 主打的最新数据科学生产工具,某种意义上,它的出现是为了取代Jupyter Notebook。不过不用担心Jupyter Notebook会消失,JupyterLab 包含了Jupyter Notebook所有功能,并升级增加了很多功能。

它最大的更新是模块化的界面,可以在同一个窗口以标签的形式同时打开好几个文档,同时插件管理非常强大,使用起来要比jupyter notebook高大尚许多。

文章目录

    • 技术提升
    • 1、拼写检查
    • 2、代码格式化
    • 3、多行选择
    • 4、添加虚拟环境
    • 5、像运行脚本一样运行notebook
    • 6、分割编辑器窗口
    • 7、随时查看文档
    • 8、终端命令和Python代码混合开发
    • 9、通知执行
    • 10、自动重载修改后的Python脚本
    • 总结

技术提升

本文由技术群粉丝分享,资料梳理、资料分享、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

方式①、添加微信号:dkl88191,备注:来自CSDN
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

1、拼写检查

拼写检查可以让我们的文档保持更高的质量,默认情况下,拼错的单词会以红色背景突出显示,但是这里我将其设置为下划线。

使用这个功能只要安装以下的插件:

 pip install jupyterlab-spellchecker

2、代码格式化

这里需要安装几个包,一个是提供格式化功能,另外一个是我们的jupyterlab插件

 # Install the formatters  
 $ pip install black isort  
 # Install the extension  
 $ pip install jupyterlab-code-formatter

通过Jupyter Lab Code Formatter扩展可以获得很多的格式化功能

安装完成后,顶部会出现一个奇怪但看起来很酷的图标。如果您不想使用该按钮,您可以将扩展配置为保存时自动格式化(在 Advanced Settings Editor 设置)。

3、多行选择

这个功能与jupyter notebook一样,点击时按住Ctrl键可以多选。只能在单个单元格内进行多选。

4、添加虚拟环境

使用以下命令将虚拟环境作为内核添加到Jupyter Lab,这样就可以作为一个选项出现在Launcher或内核列表的右上角:

 $ pip install ipykernel  
 $ ipython kernel install --user --name=new_or_existing_env_name

注意:以上代码需要在你需要添加的虚拟环境使用,而不是jupyter lab的环境

5、像运行脚本一样运行notebook

Jupyter notebook用于探索和互动输出。但是使用jupyter run命令,可以像Python脚本一样顺序执行每个笔记本单元格。

 jupyter run path_to_notebook.ipynb

该命令会以JSON的形式返回每个单元格的输出,所以如果有大量文本输出可能会卡顿。我们可以将不同的超参数保存到单个笔记本中然后运行,这样可以保存运行记录。

6、分割编辑器窗口

Jupyter Lab的窗口以标签的形式展示,我们一次可以打开好几个编辑窗口,并且可以拖动窗口,将编辑器窗口分割,演示如下:

7、随时查看文档

有三种方法可以直接从编辑器中查找几乎任何函数或魔法命令的文档。

第一个是使用Shift + Tab键盘快捷键(默认),它会显示一个弹出窗口,其中包含光标所在的函数或类的文档:

如果不喜欢点击其他地方后弹出窗口消失,还可以使用上下文帮助,它可以通过帮助菜单或Ctrl + I键盘快捷键访问。上下文帮助显示游标指向的函数或类的实时文档。

最后,一种方法可以简单地在函数或类名的末尾添加一个问号(不带括号):

8、终端命令和Python代码混合开发

这个功能看起来有点古怪,但它非常有用。使用感叹号(!),可以在代码单元格中运行任何终端命令。

还可以将这些命令的输出存储在Python变量中。例如使用!pwd的输出将当前工作目录存储在path变量中:

 path = !pwd

这里有一个更实际的例子。假设有一个数据文件夹,其中包含用于模型训练的图像。所有图像都根据它们的类被分类到目录中。

问题是有太多的图像类别,我们无法手动计数。需要使用一个快速的方法来计算data/raw/train内部的目录数量,并将其输出存储在number_of_classes中:

 number_of_classes = !ls -1 data/raw/train | wc -l  
   
 >>> print(number_of_classes)  
 43

一句shell命令就能解决问题,这样就不用我们写python的目录遍历代码了

9、通知执行

即使你不是谷歌Colab的用户,你也一定会喜欢它的单元格执行通知。使用winsound内置Python库,可以在Jupyter Lab上模仿该功能:

 import winsound  
   
 # Create a beep that lasts five seconds  
 duration = 5000  
 frequency = 440  
   
 winsound.Beep(frequency, duration)

10、自动重载修改后的Python脚本

将脚本与笔记本混合使用是非常不好的,但是有时候我们的确需要这样做,如果我们更新了导入的脚本,除非重新启动内核,否则Jupyter将不会自动检测到更改,这会产生很多问题。所以我们可以使用autoreload 命令来避免这个问题:

 %load_ext autoreload  
 %autoreload 1

上述代码将每秒钟检测并刷新一次内核。它不仅会检测脚本更改,还会检测对所有文件的更改。

对于python脚本,我们还可以使用pycat 命令来以语法高亮的形式显示Python脚本的内容:

对于其他文件格式,也可以使用cat命令,这是linux的标准命令

总结

本文介绍了几个常用且好用的jupyter技巧,如果你还想了解个更多的魔法命令,可以运行lsmagic。它将列出所有内联和单元格魔术命令。

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

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

相关文章

瑞芯微的接口结构学习总结

MPI 接口使用的主要数据结构: 瑞芯微提供的媒体处理软件平台(Media Process Platform,简称 MPP)是适用于瑞芯微芯片系列的 通用媒体处理软件平台。该平台对应用软件屏蔽了芯片相关的复杂底层处理,其目的是为了屏蔽不 …

2022 全球网络黑产常用攻击方法 Top 10

近几年,借助互联网产业发展的东风,网络黑产也迎来更加巅峰的状态,不论是从攻击效率,组织规模,亦或是收益变现能力,都在一天天变的成熟完善。根据艾瑞咨询 2020 年发布的《现代网络诈骗分析报告》&#xff0…

哪些数据库开了全文索引

大家好,才是真的好。 今天我们讨论Domino运维管理问题:哪些数据库开启了全文索引? 在前面的某些篇章中,我们介绍过什么是Notes应用的全文索引Full Text Index,以下简称FTI。它是Notes库中的单词的文本索引或列表&…

HTML零基础教程,九大知识点带你玩转前端(下)

博主:冰小九,新人博主一只,欢迎大佬前来指导 冰小九的主页喜欢请给个三连加关注呀,谢谢🌷🌷🌷三连加关注,追文不迷路,你们的支持就是我最大的动力!&#xff0…

javaAPI操作-Zookeeper

## 4)ZooKeeper JavaAPI 操作 4.1)Curator介绍 •Curator 是 Apache ZooKeeper 的Java客户端库。 •常见的ZooKeeper Java API : •原生Java API •ZkClient •Curator •Curator 项目的目标是简化 ZooKeeper 客户端的使用。 •Curator 最初是 Netfix 研发的…

电影购票系统项目实战

电影购票系统项目实战电影购票系统简介、项目功能演示。日志框架搭建、系统角色分析首页、登录、商家界面、用户界面实现商家功能-展示详情、影片上架、退出商家功能-影片下架、影片修改用户功能-展示全部影片用户功能-购票功能用户功能-评分功能用户功能-根据片名查询全部影片…

绝缘手套穿戴智能识别算法 yolov5

绝缘手套穿戴智能识别算法通过opencvpython深度学习技术,对现场人员是否佩戴绝缘手套进行识别检测,当检测到现场人员违规行为未佩戴绝缘手套时立刻抓拍告警。我们使用YOLO(你只看一次)算法进行对象检测。YOLO是一个聪明的卷积神经网络(CNN),用…

初学者C语言练习题-入门

一、入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世…

Python SciPy 模块列表

SciPy 模块列表以下列出了 SciPy 常用的一些模块及官网 API 地址:模块名功能参考文档scipy.cluster向量量化cluster APIscipy.constants数学常量constants APIscipy.fft快速傅里叶变换fft APIscipy.integrate积分integrate APIscipy.interpolate插值interpolate API…

Android自定义控件(八) Android仿招商银行APP手势解锁

前言 目前大部分APP的登录方式有多种类型,其中手势解锁就是其中比较常见的一种方式,经常使用的招商银行APP(IOS)端的手势解锁体验不错的,就仿照它自定义下手势解锁功能。 说明 1、招行APP手势解锁效果 2、绘制分析 …

【技术推荐】前端JS攻防对抗

简介 网络爬虫一直以来是让网站维护人员头痛的事情,即要为搜索引擎开方便之门,提升网站排名、广告引入等,又要面对恶意爬虫做出应对措施,避免数据被非法获取,甚至出售。因此促生出爬虫和反爬虫这场旷日持久的战斗。 爬…

Java中的Arrays类

1、问题Arrays类是什么,Arrays常用方法。2、方法了解Arrays类的概念Arrays 位于java.util包下,Arrays是一个操作数组的工具类。Arrays常用方法Arrays.fill:替换数组原元素;Arrays.sort:对数组进行排序(递增)&#xff1…

23种设计模式(六)——装饰模式【单一职责】

文章目录意图什么时候使用装饰真实世界类比装饰模式的实现装饰模式的优缺点亦称: 装饰者模式、装饰器模式、Wrapper、Decorator 意图 装饰者模式(Decorator Pattern)允许向一个现有的对象扩展新的功能,同时不改变其结构。主要解决…

Allegro如何快速找到差分不耦合处操作指导

Allegro如何快速找到差分不耦合处操作指导 做PCB设计的时候,需要检查差分对不耦合的地方,让差分不耦合的地方高亮出来 具体操作如下 用Allegro172版本打开pcb,选择View选择Vision Manager

抖快社交,变道求生

配图来自Canva可画 抖音、快手再一次杀回了社交市场。 2022年12月底,快手App store版本更新,在原有的快手热榜、朋友动态、快手拍摄的基础上,新增亲密贴贴、快手直播等新锁屏组件,通过强化产品的交互功能,增强用户的…

针对游戏开发CG制作的搬砖人员的资源搜索技巧分享—【持续补充篇】

一.常用搜索技巧分享 1.视频参考类(bilibili,youtube,常用的视频官网,其实可以满足了,再不行就在百度/Google搜一下) 2.教程和代码类 github Bootstrap Well magebox realtimevfx

Python项目(Django框架)天天生鲜在CentOS7.9搭建运行

CentOS安装python3 为方便管理,在CentOS桌面创建一个文件夹,将软件包下载到这里,右键--在终端打开 安装python3.9.7 : wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz (命令前的sudo如果是root用户可以去掉&…

深度学习目标检测基础_sigmoid和softmax函数

文章目录sigmoid和softmaxsigmoid函数softmax函数总结sigmoid和softmax sigmoid和softmax都是分类函数,他们的区别如下 sigmoid函数 Sigmoid 多标签分类问题多个正确答案非独占输出(例如胸部X光检查、住院)。构建分类器,解决有…

威纶通触摸屏配方功能的使用方法示例

威纶通触摸屏配方功能的使用方法示例 本次和大家分享通过触摸屏内部指针+偏移地址+控制元件实现配方功能的具体方法, 另外以前给大家分享过利用宏指令实现配方功能的方法,具体可参考以下链接中的内容: 威纶通触摸屏的配方功能具体使用方法介绍(宏指令写入PLC) 如下图所示…

Dubbo 服务引用

Dubbo 服务引用 0. 概述 Dubbo 服务引用的时机有两个,第一个是在 Spring 容器调用 ReferenceBean 的 afterPropertiesSet 方法时引用服务,第二个是在 ReferenceBean 对应的服务被注入到其他类中时引用。这两个引用服务的时机区别在于,第一个…