五个Jupyter Notebook实用魔法命令分享

 更新时间:2023年07月17日 14:23:15   作者:databook  
Jupyter Notebook是一个开源的交互式编程环境,用于创建和共享包含实时代码、文本等,本文主要来和大家分享一些有趣的Jupyter Notebook魔法命令,需要的可以参考一下

Jupyter Notebook是一个开源的交互式编程环境,用于创建和共享包含实时代码、文本、图像和可视化输出的文档。

它交互式的编程方式是一大亮点,因为我们在数据分析的过程中,常常是一边分析,一边看分析结果,根据分析结果再调整数据或者分析参数。

有了 Jupyter Notebook,代码和运行结果可以一起展示,省了很多来回切换的麻烦操作。

此外,它是基于Web的应用程序,所以展示运行结果的方式很丰富,不仅仅是文字,图表等也一样可以展示。

Jupyter Notebook不仅仅支持python语言,还支持其他几种常用于数据分析的语言,比如 JuliaR 等等。

介绍如何使用Jupyter Notebook编程和写文档的文章很多,本篇主要介绍几个使用Jupyter Notebook时常用的几个魔法命令。

这些魔法命令主要提供一些额外的功能和控制Notebook环境的行为。

1. 文件和路径

查看当前路径:

%pwd
#运行结果(环境不一样,下面的路径会不一样):
'd:\\projects\\python\\notebooks'

魔法命令的结果还可以存储到python变量中。

cur_path = %pwd
print(cur_path)
#运行结果:
'd:\\projects\\python\\notebooks'

列出当前文件夹下的文件:

%ls

这个命令在不同的系统中会自动调用不同的命令,

比如在Linux系统中,调用ls命令,在Windows系统中,会调用 dir 命令。

2. 自动保存

随时保存自己的代码和文档是好习惯,如果怕忘了保存,也可以设置Jupyter Notebook的自动保存时间。

比如:

%autosave 10
#运行结果
Autosaving every 10 seconds

每隔10秒会自动保存一次。

3. 查看历史

查看执行过的历史命令,这里不仅仅是历史执行的魔法命令,也包括执行过的python代码。

%history

通过复制历史命令,我们再次执行之前的命令或代码时,不用再输入一遍。

如果历史命令太多,也可以指定只显示最近的N条命令:

%history -l 3
#只显示最近3条命令

4. 性能检测

数据分析时,经常接触到数量庞大的数据。

编写分析代码处理庞大的数据时遇到性能问题是常事,Jupyter Notebook有两个魔法命令可以帮助我们定位性能问题。

第一个是 %time,能够显示函数运行时间的相关信息:

def sum(n):
    s = 0
    for i in range(n):
        s += i
    return s
%time sum(100000)
%time sum(200000)
#运行结果
CPU times: total: 93.8 ms
Wall time: 87.9 ms
CPU times: total: 172 ms
Wall time: 168 ms

其中,

  • CPU time是程序在处理器上实际运行的时间
  • Wall time是程序从开始执行到结束所花费的时间(包括了等待资源、I/O 操作等与CPU 时间无关的时间)

上面的示例中,第二次的运算量是第一个的两倍,耗费的时间也差不多是两倍。

除了 %time,还有一个 %timeit 命令,

它会统计多次运行后的结果,得到的结果更加可靠一些。

def sum(n):
    s = 0
    for i in range(n):
        s += i
    return s
%timeit sum(1000000)
#运行结果
63.9 ms ± 2.97 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

运行结果的含义如下:

  • 63.9 ms 是运行时间的平均值
  • 2.97 ms是标准差,也就是运行时间的上下浮动范围
  • 7 runs表示一共运行了7
  • 10 loops each表示每轮循环运行了10

%timeit 运行多少轮,以及每轮运行多少次是可以设置的。

def sum(n):
    s = 0
    for i in range(n):
        s += i
    return s
%timeit -n 20 -r 10 sum(1000000)
#运行结果
66.7 ms ± 4.75 ms per loop (mean ± std. dev. of 10 runs, 20 loops each)

-r 参数指定运行多少轮,-n参数指定每轮运行多少次。

5. 绘图相关

最后,介绍在Jupyter Notebook中使用matplotlib绘图时用到的魔法命令。

5.1. 直接显示

%matplotlib inline,直接显示在代码的下方,这也是最常用的方式。

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
x = np.arange(0, 10, 1)
y = x*x + 2
plt.plot(x, y)
plt.show()

5.2. 使用 TK 绘制

%matplotlib tk,会弹出新的窗口显示图形,并且图形可以交互。

import matplotlib.pyplot as plt
import numpy as np
%matplotlib tk
x = np.arange(0, 10, 1)
y = x*x + 2
plt.plot(x, y)
plt.show()

红色框标出的就是交互的按钮。

5.3. 使用 notebook 绘制

%matplotlib notebook和使用tk是类似的,只是不弹出新的窗口。

import matplotlib.pyplot as plt
import numpy as np
%matplotlib notebook
x = np.arange(0, 10, 1)
y = x*x + 2
plt.plot(x, y)
plt.show()

这种方式同样是可以交互的。

到此这篇关于五个Jupyter Notebook实用魔法命令分享的文章就介绍到这了,更多相关Jupyter Notebook魔法命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python Pandas处理csv文件常用示例

    Python Pandas处理csv文件常用示例

    Pandas是一个非常强大的数据操作python包,支持各种数据格式,包括CSV文件,本文就来介绍一下Python Pandas处理csv文件常用示例,感兴趣的可以了解一下
    2023-12-12
  • Python进行有限元仿真的使用及创建

    Python进行有限元仿真的使用及创建

    这篇文章主要为大家介绍了Python进行有限元仿真的创建及使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Python3的unicode编码转换成中文的问题及解决方案

    Python3的unicode编码转换成中文的问题及解决方案

    这篇文章主要介绍了Python3的unicode编码转换成中文的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Keras-多输入多输出实例(多任务)

    Keras-多输入多输出实例(多任务)

    这篇文章主要介绍了Keras-多输入多输出实例(多任务),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python CleverCSV轻松处理CSV文件指南

    Python CleverCSV轻松处理CSV文件指南

    这篇文章主要为大家介绍了Python CleverCSV轻松处理CSV文件全面指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • python将多个文本文件合并为一个文本的代码(便于搜索)

    python将多个文本文件合并为一个文本的代码(便于搜索)

    源代码目录一般很详细,每个代码文件都不长,一般只占几十行而已。在跟着书籍学习的过程中,可以打开源代码运行之后查看效果,或者适当修改看看变化,这都是很好的掌握技术的好办法。
    2011-03-03
  • windows下搭建python scrapy爬虫框架步骤

    windows下搭建python scrapy爬虫框架步骤

    在本文内容里小编给大家分享的是关于windows下搭建python scrapy爬虫框架的教学内容,需要的朋友们学习下。
    2018-12-12
  • 深入理解python中sort()与sorted()的区别

    深入理解python中sort()与sorted()的区别

    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列。这篇文章主要介绍了python中sort()与sorted()的区别,需要的朋友可以参考下
    2018-08-08
  • Python3中的2to3转换工具使用示例

    Python3中的2to3转换工具使用示例

    这篇文章主要介绍了Python3中的2to3转换工具使用示例,本文详细讲解了使用的步骤,并总结了一些使用注意事项,需要的朋友可以参考下
    2015-06-06
  • python多线程threading.Lock锁用法实例

    python多线程threading.Lock锁用法实例

    这篇文章主要介绍了python多线程threading.Lock锁用法,以实例形式对python锁的用法进行了较为详细的分析,需要的朋友可以参考下
    2014-11-11

最新评论