Jupyter Notebook中的魔术命令
本文作者:张 猛,中南财经政法大学金融学院
本文编辑:刘光中
技术总编:王玉婷
Stata&Python云端课程来啦!
好消息好消息,爬虫俱乐部开辟小鹅通战场!!爬虫俱乐部隆重推出小鹅通网络课程,将Stata基础课程,Stata进阶课程和Python课程都上传至小鹅通平台,欢迎大家多多支持订阅!报名课程即可加入答疑群,对报名有任何疑问欢迎在公众号后台留言哦。如需了解详情,可以通过课程链接(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~
一、可用的魔术命令
%lsmagic
魔术命令主要包括两大类:第一类是行魔术(line magic),基本形式是 %magic, 表示magic只在本行有效;第二类是单元魔术(cell magic),基本形式是%%magic, 表示magic在整个cell单元有效。有些命令默认可以不带百分号使用,只要确定没有定义与其同名的变量即可。在魔术命令后面加上"?"即可以查询该命令的详细说明信息。
二、列出所有变量
这个魔术命令可以很好地向你展示Notebook环境中的变量列表。我们这里举出3个变量——1个数组、1个数字以及1个字符串。如果运行%who,它将列出定义的所有3个变量;%whos类似于%who,但可以给出更详细的信息。我们也可以在%who(%whos)魔术命令后面加上所需查找的变量类型对变量进行筛选,例如加上str对字符串形式的变量进行输出。
import pandas as pd
a = pd.DataFrame()
b = 2
c = "爬虫俱乐部"
%who
%whos
%whos str
三、计时命令
A = 0
%time for i in range(1000):A = A + i**2
%timeit for j in range(1000): A = j**2
上图是测量的单行代码的运行时间,如果是处理整个计算单元,需要使用%%作为time关键字之前的前缀,然后将其放于单元格的首行。
四、不同Notebook共享变量
这个魔术命令允许在不同的Jupyter Notebook之间共享任何变量。如果你在一个Notebook上做出了变量,而想在另一个Notebook上也使用这个变量,就可以使用魔术命令%store传递原始变量。如图所示,表示名为"myData1"的列表被储存起来了。
myData1 = ['爬虫俱乐部', 'Stata and Python']
%store myData1
%store -r myData1
myData1
五、查看历史操作
%history
六、将内容复制到文件中
如果我们想要将Jupyter Notebook中写的复杂函数或者类保存到专门的文件中时,魔术命令%%writefile非常有用,只需为函数或类的单元格添加%%writefile前缀,并写明想要保存到的文件名即可,当我们需要保存成py文件的时候就不需要复制了。
%%writefile temp_test.py
def triplesum(a,b,c):
d = a + b + c + a * b * c
return d
这样我们就将创建的函数保存到temp_test.py 文件中,文件默认生成在同路径下,也可以对同名文件进行覆盖。如图,在同一路径下生成了新的文件。
七、显示外部文件的内容
如果需要将外部文件中的几行代码复制到代码中,就需要用到魔术命令%pycat,其允许在任何目录中显示任何文件的内容,而不是通过冗长的过程来获取文件并将其打开以进行复制。这里用%pycat显示一下我们刚才写入的py文件。
%pycat temp_test.py
八、运行外部文件
%run temp_test.py
triplesum(3,4,5)
九、图像显示形式
魔术命令%matplotlib允许Jupyter Notebook在Notebook中显示matplotlib图形,激活matplotlib对Jupyter Notebook的交互式支持。
%matplotlib inline生成的图像内嵌显示,也是默认的显示形式。当我们调用matplotlib.pyplot的绘图函数plot()进行绘图的时候,可以确保Jupyter Notebook显示出我们的绘图。
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.plot(np.arange(10))
%matplotlib notebook
plt.plot(np.arange(10))
小结
最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。
对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
匿名函数lambda到底怎么用?
Stata绘图系列—NBER Working paper仿图
Camelot:从PDF中提取表格数据 Stata之计算财务指标——融资约束Stata绘图系列——玩转绘图通用选项之坐标轴玩转地图的好帮手--pyecharts
爬虫俱乐部又又又输送了一位研究助理!!! 【数据分析】一文教你玩转DataFrame【数据分析-入门】一看就会!Numpy的创建、索引、切片与更新
带你玩转Stata编码一言不合就teamviewer 教你用Stata爬取全国疫情风险地区数据,原来这么简单!【数据结构】集合的使用方法 Stata爬取七普人口数据浅析Python的序列化与反序列化
爬虫俱乐部的精彩答疑--爬虫为何失败?
关于我们微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。
此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可
以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。