Jupyter Notebook中的常用魔法方法

01 %run 方法

%run方法用于运行指定的py文件,例如以下命令将执行当前目录下file/02magic文件夹下的helloworld.py文件。

%run file/02magic/helloworld.py

输出结果:

hello world

helloworld.py的内容如下:

def say_something():
	"""
	a function to say helloworld
	"""
	print('hello world')

def hello(words):
	print(words)

if __name__=='__main__':
	say_something()

在使用%run方法执行py文件后,就可以在之后的代码中直接调用该py所含有的方法(必须先执行py文件)。例如下列代码将调用helloworld.py中的hello方法,且不会产生任何报错。

hello('你好')

输出:

你好

02 %load 方法

%load方法可以直接将py文件中的内容加载到juypter notebook中。下面的例子将将helloworld.py文件中的所有内容进行加载。

%load file/02magic/helloworld.py

在执行完该命令后,单元格的内容将发生变化。

# %load file/02magic/helloworld.py
def say_something():
	"""
	a function to say helloworld
	"""
	print('hello world')

def hello(words):
	print(words)

if __name__=='__main__':
	say_something()

可以发现,helloworld.py中的文件已经全部加载到单元格内,而%load命令本身则被进行了注释。

04 %timeit与%%timeit

使用%timeit方法可以查看语句执行的时间,语句将进行多轮的测试,每轮可能会进行多次,最后将给出运行时间的均值和标准差。%timeit方法只能测试一行语句运行的时间,如果想要测试多行,则需使用%%timeit方法。
如下代码测试通过推导式建立列表的时间。

%timeit [i**2 for i in range(1000000)]
324 ms ± 6.45 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

在结果中表明,运行时间均值为324ms,标准差为6.45ms,一共测试了7轮,每次运行1次。
下面使用%%timeit方法测试多行代码的运行时间。

%%timeit
arr=[]
for i in range(1000000):
    arr.append(i**2)
339 ms ± 14.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

05 导入自定义模块

如果模块就在当前路径下,就可以直接导入。例如导入在MyModule模块下的sclpy.py文件中所有方法,则可以使用如下代码:

from MyModule.sclpy import *

路径如下:
在这里插入图片描述
如果模块不在当前路径下,则可以通过sys.path.append方法先将路径加入环境变量,再导入模块。如下:
此时的模块位于 当前目录/file/02magic/下,先将目录加入环境变量,再导入。

import sys
sys.path.append('file/02magic')#添加路径到环境变量
from MyModule.sclpy import my_first_module
my_first_module()
hello, this is my first module!

sclpy.py文件内容如下:

import numpy as np

def my_first_module():
	print('hello, this is my first module!')

if __name__=='__main__':
	my_first_module()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值