1 简介

  jupyter notebookjupyter lab作为广受欢迎的ide,尤其适合开展数据分析相关工作,而掌握它们相关的一些实用技巧,势必会大大提升日常工作效率。而今天我就来给大家介绍9个非常实用的jupyter小技巧~

图1

2 9个jupyter实用技巧

2.1 在同一个output里显示多个输出结果

  我们都知道,在jupyter中同一个cell内,如果不使用print等函数,那么就只有最后一个调用的变量结果会被打印显示出来:

图2

  而只要配合ipython执行下列代码之后,就可以实现多输出结果的打印:

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = 'all'

图3

  可以看到,这时我们无论输出几个元素都会被打印出来非常方便~

2.2 在单元格中直接执行终端命令

  在jupyter中我们可以利用!加上终端命令的形式,在单元格中直接执行命令,非常的方便(但要注意如果有需要输入y/n确认等情况,请把类似-y的参数带上否则无法继续):

图4

2.3 利用%who列出当前所有变量名

  有些情况下,我们需要搞清楚当前kernel下有哪些已被创建的变量,这时魔法命令%who就非常实用:

图5

  也可以带上参数输出指定类型的变量名:

图6

2.4 使用多光标模式

  很多情况下,我们针对同一个单元格内的代码,要修改的地方比较多的话,就可以配合jupyter中的多光标模式,譬如按住ctrl键点击不同的地方:

图7

  或者按住alt迅速矩形选择(会按照每行相同字符数进行选择):

图8

2.5 给自己的程序设置一个闹钟

  当我们的一段程序需要运行较长时间时,我们往往不会干守着它运行完成,这时可以利用一些小技巧,在程序运行完成后给自己响起闹钟提示,譬如在windows下可以参考下面的例子设置,大家可以亲自试一试非常的有意思~:

import winsound
import time # 假装执行耗时任务
time.sleep(10) duration = 3000 # 3000毫秒即3秒
freq = 440 # 设置响声频率 # 闹钟响起
winsound.Beep(freq, duration)

2.6 针对API进行模糊查询

  有些时候我们在编程时可能会忘记某个函数或方法的全称,只依稀记得其中的某个单词或片段,这种情况下我们就可以参考下列方式使用*通配符进行模糊查询:

图9

2.7 设置显示行标号

  jupyter默认情况下是不显示代码行标的,这在我们执行出错之后很是不好寻找到底是哪一行出错,事实上我们可以通过设置来解决这个问题,譬如jupyter lab中设置方式如下:

图10

2.8 阻止matplotlib多余文字内容输出

  我们在用matplotlib绘图时一定遇到过显示图像的同时跟着输出了一段文字,这是因为matplotlib的很多API是有返回值的,因此我们只需要最后一行末尾加上;阻止输出即可:

图11

2.9 配合watermark自动打印版本信息

  在很多情况下,我们书写代码导入各种三方库之后,会习惯性的打印出各种版本信息,从而辅助之后的代码复用,这种情况下我们就可以配合watermark来自动帮我们干这些事。

  利用pip install watermark安装完成后,就可以参照下面的方式给自己的notebook添加各种记录信息~

图12


  以上就是本文的全部内容,欢迎在评论区与我进行讨论~

秒啊,速来get这9个jupyter实用技巧的更多相关文章

  1. liunx速查

    文件和目录 Linux 主要目录速查表 /:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始 当在终端里输入 /home,其实是在告诉电脑,先从 /(根目 ...

  2. 体验阿里云SSD云盘+ECS(I/O优化)的性能

    阿里云推出SSD云盘+I/O优化的ECS已有一段时间,这个功能优化可以为ECS服务器与SSD云盘提供更好的网络能力.据阿里云官网介绍,SSD云盘最高提供20000次随机读写IOPS.256MB/S吞吐 ...

  3. NeHe OpenGL教程 第三十五课:播放AVI

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. MPlayer

    名称   mplayer − 电影播放器 mencoder − 电影编解码器 概要   mplayer [选项] [文件|URL|播放列表|−] mplayer [选项] 文件1 [指定选项] [文件 ...

  5. 【录教程必备】推荐几款屏幕录制工具(可录制GIF)

    我们经常会遇到一些场景,需要你向别人展示一些操作或是效果——例如告诉别人某某软件的配置步骤啊.刚设计出来网站的动画效果怎么样啊.某某电影里面的一个镜头多么经典啊.打得大快人心的NBA绝杀瞬间是怎么回事 ...

  6. 冲顶大会APP技术选型及架构设计

    我在1月4日看到虎嗅推送"王思聪撒币"的消息,然后开始推敲背后技术.其中涉及直播流.实时弹幕.OAuth2.0开放授权.SMS api.Push网关.支付接口等业务,其技术实现并不 ...

  7. 教你快速录制gif动图

    我们经常会遇到一些场景,需要你向别人展示一些操作或是效果——例如告诉别人某某软件的配置步骤啊.刚设计出来网站的动画效果怎么样啊.某某电影里面的一个镜头多么经典啊.打得大快人心的NBA绝杀瞬间是怎么回事 ...

  8. python 常忘代码查询 和autohotkey补括号脚本和一些笔记和面试常见问题

    笔试一些注意点: --,23点43 今天做的京东笔试题目: 编程题目一定要先写变量取None的情况.今天就是因为没有写这个边界条件所以程序一直不对.以后要注意!!!!!!!!!!!!!!!!!!!!! ...

  9. 开发人员不可不看的 OBD通讯协议知识

    OBD-II Network Standards» J1850 VPW– Adopted by GM; also known as Class 2.– Adopted by Chrysler (kno ...

随机推荐

  1. 大数据专栏 - 基础1 Hadoop安装配置

    Hadoop安装配置 环境 1, JDK8 --> 位置: /opt/jdk8 2, Hadoop2.10: --> 位置: /opt/bigdata/hadoop210 3, CentO ...

  2. JAVA原生mvc实现用户信息的增删查改

    笔者最近学完jsp和servlet,于是心血来潮的打算写个简单的用户案例 环境准备: 开发工具eclipse jdk-1.8.0_72 tomcat-9.0.5 前端部分: 1.自己手写了一套样式 2 ...

  3. python使用msgpack(umsgpack)

    前言 如果有业务需要将一个数据塞进队列由另一端接收,我们就需要考虑到数据的大小,因为这跟队列的效率和稳定性正相关,如果你希望能对这部分数据进行一定的压缩,并且提高解压缩的效率时,希望你能想到 msgp ...

  4. LeetCode105 从前序和中序序列构造二叉树

    题目描述: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意:你可以假设树中没有重复的元素. 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9 ...

  5. Flutter 基础组件:Widget简介

    概念 在Flutter中几乎所有的对象都是一个Widget.与原生开发中"控件"不同的是,Flutter中的Widget的概念更广泛,它不仅可以表示UI元素,也可以表示一些功能性的 ...

  6. Nginx Consul nginx-upsync-module

    nginx consul nginx-upsync-module 依赖包: yum -y install libpcre3 libpcre3-dev ruby zlib1g-dev patch 下载n ...

  7. ASP.NET Core错误处理中间件[1]: 呈现错误信息

    NuGet包"Microsoft.AspNetCore.Diagnostics"中提供了几个与异常处理相关的中间件.当ASP.NET Core应用在处理请求过程中出现错误时,我们可 ...

  8. 【Linux】一个网卡部署多个内网ip

    1.用root权限的用户登录CENTOS,进入network-scripts文件夹下(本步骤可以省略,与二步骤一起完成): shell命令:cd /ect/sysconfig/network-scri ...

  9. sentinel-实战

    sentinel-实战笔记 什么是Sentinel Sentinel是阿里开源的项目,提供了流量控制.熔断降级.系统负载保护等多个维度来保障服务之间的稳定性. Sentinel主要特性: 获取Sent ...

  10. std::async的使用总结

    C++98标准中并没有线程库的存在,直到C++11中才终于提供了多线程的标准库,提供了管理线程.保护共享数据.线程间同步操作.原子操作等类.多线程库对应的头文件是#include <thread ...