转载请注明出处
运行脚本
文件结构
%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?