Jupyter Notebook 中的魔法命令

转载请注明出处

运行脚本

文件结构
在这里插入图片描述
在这里插入图片描述
%run后面接相对地址即可

%run Test/test.py

Hello Machine Learning !

notebook将整个test.py脚本加载进来了

调用刚才程序中的hello函数

hello("mooc")

Hello mooc !

加载整个模块

文件结构
在这里插入图片描述
__init__.py文件为空,使该文件夹成为一个package

在这里插入图片描述

import myModule.main
myModule.main.predict(1)

?

%timeit

单句运行时间测量

运行多次取平均值

%timeit L = [i**2 for i in range(1000)] #List生成表达式

448 µs ± 45 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

%timeit L = [i**2 for i in range(10)]

5 µs ± 509 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

%%timeit

代码块运行时间测量

区域命令符

%%timeit
L = []
for n in range(1000):
    L.append(n ** 2)

542 µs ± 74.9 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

time

只运行一次

%time L = [i**2 for i in range(1000)] 

Wall time: 998 µs

%%time
L = []
for n in range(1000):
    L.append(n ** 2)

Wall time: 0 ns

timeit 和 time 的比较

timeit因为多次运行,如果每次运行效率不同,时间会有很大偏差

import random
L = [random.random() for i in range(10000)]
%timeit L.sort()

71.1 µs ± 2.81 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

L = [random.random() for i in range(10000)]
%time L.sort()

Wall time: 998 µs

关于运行时间(操作系统知识补充):

真实时间 walltime:进程从开始执行到最后结束的时间,包括阻塞 + 就绪 + 运行的时间。称为 wall clock time/墙上时钟时间/elpapsed time,是我们跑程序实际等待的时间;

系统cpu时间 system time:用户进程获得CPU资源后,在内核态的执行时间,如write,read等系统调用;

用户cpu时间 usertime:用户进程获得CPU资源后,在用户态执行的时间,主要是我们自己编写的代码;

其中可大致认为:

真实时间 = 阻塞时间 + 就绪时间 +CPU运行时间

CPUtime = usertime + systime


time比timeit时间长很多,为什么呢?

%time L.sort()

Wall time: 0 ns

对于一个已经排好序的数组,python可以很快完成排序。

(三路快排算法、归并排序+优化,可以对已经有序的数组,实现 O ( N ) O(N) O(N)复杂度的排序)

%timeit L.sort() 只有第一次时间长。

其他魔法命令

%lsmagic

查看文档

%run?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值