金融量化分析【day110】:IPython介绍及简单操作
一. IPython介绍
ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数。学习ipython将会让我们以一种更高的效率来使用python。同时它也是利用Python进行科学计算和交互可视化的一个最佳的平台。
1、IPython提供了两个主要的组件:
1.一个强大的python交互式shell
2.供Jupyter notebooks使用的一个Jupyter内核(IPython notebook)
2、IPython的主要功能如下:
1.运行ipython控制台
2.使用ipython作为系统shell
3.使用历史输入(history)
4.Tab补全
5.使用%run命令运行脚本
6.使用%timeit命令快速测量时间
7.使用%pdb命令快速debug
8.使用pylab进行交互计算
9.使用IPython Notebook
二、 安装IPython
ipython支持Python2.7版本或者3.3以上的版本,我用的是windows下的python 3.4版本。
安装ipython很简单,可以直接使用pip管理工具即可:
pip install ipython
这条命令会自动安装IPython以及它的各种依赖包
如果我们也想在notebook中或者在Qt console中使用IPython,我们还需要安装Jupyter,如下命令:
pip install jupyter
另外我们还可能需要安装一些用到的库:
NumPy高性能多维数组矢量运算库:
pip install numpy
Matplotlib绘图以及交互式可视化:
pip install matplotlib
三、交互式使用IPython
IPython支持所有python的标准输入输出,也就是我们在IDLE中或者Python shell中能用的,在IPython中都能够使用,唯一的不同之处使ipython会使用In [x]和Out [x]表示输入输出,并表示出相应的序号。
其实后面我们会知道,In和Out是两个保存历史信息的变量
进入IPython也非常简单,直接win + R打开运行,然后输入ipython即可进入IPython shell交互框;
或者输入
除此之外,ipython支持一些更高级的功能。
3.1 Tab键自动补全
在shell中输入表达式时,只要按下Tab键,当前命名空间中任何与输入的字符串相匹配的变量(对象或者函数等)就会被找出来:
这时可以通过键盘的向下翻页键找到自己需要的对象。
3.2 内省
在变量的前面或者后面加上一个问号?,就可以将有关该对象的一些通用信息显示出来,这就叫做对象的内省。
如果对象是一个函数或者实例方法,则它的docstring也会被显示出来:
定义方法如下:
这时查看该方法的内省信息:
如果使用两个问号??,那么还可以显示出该方法的源代码:
另外,我们可以使用通配符字符串查找出所有与该通配符字符串相匹配的名称,比如我们查找re模块下所有的包含find的函数:
3.3 使用历史命令history
在IPython shell中,使用历史命令可以简单地使用上下翻页键即可,另外我们也可以使用hist命令(或者history命令)查看所有的历史输入。(正确的做法是使用%hist,在这里,%hist也是一个魔法命令)
如果在hist命令之后加上-n,即hist -n也可以显示出输入的序号:
在任何的交互会话中,我们的输入历史和输出历史都会被保存在In和Out变量中,并被序号进行索引。
另外,_,__,___和_i,_ii,_iii变量保存着最后三个输出和输入对象。_n和_in(这里的n表示具体的数字)变量返回第n个输出和输入的历史命令。比如:
3.4 使用%run命令运行脚本
在ipython会话环境中,所有文件都可以通过%run命令当做Python程序来运行,输入%run 路径+python文件名称即可
3.5 使用%timeit命令快速测量代码运行时间
在一个交互式会话中,我们可以使用%timeit魔法命令快速测量代码运行时间。相同的命令会在一个循环中多次执行,多次运行时长的平均值作为该命令的最终评估时长。-n 选项可以控制命令在单词循环中执行的次数,-r选项控制执行循环的次数。
3.6 使用%debug命令进行快速debug
ipython带有一个强大的调试器。无论何时控制台抛出了一个异常,我们都可以使用%debug魔法命令在异常点启动调试器。接着你就能调试模式下访问所有的本地变量和整个栈回溯。使用u和d向上和向下访问栈,使用q退出调试器。在调试器中输入?可以查看所有的可用命令列表。
我们也可以使用%pdb魔法命令来激活IPython调试器,这样,每当异常抛出时,调试器就会自动运行。
3.7 使用Pylab进行交互式计算
%pylab魔法命令可以使Numpy和matplotlib中的科学计算功能生效,这些功能被称为基于向量和矩阵的高效操作,交互可视化特性。它能够让我们在控制台进行交互式计算和动态绘图。
在该示例中,我们首先定义了一个-10到10的线性空间中的1000个数值的向量,接着我们绘制了(x,sin(x))图像,这样我们就成功绘制出了sin(x)的函数图像:
3.8 在IPython中使用系统shell
我们可以在IPython中直接使用系统shell,并获取读取结果作为一个Python字符串列表。为了实现这种功能,我们需要使用感叹号!作为shell命令的前缀。比如现在在我的windows系统中,直接在IPython中ping百度:
一个有趣的事情是,在IPython中调用系统shell可以再次进入一个新的IPython shell中,如下:
当然,一般没人会这么干。
四、使用IPython Notebook
IPython Notebook使用浏览器作为界面,向后台的IPython服务器发送请求,并显示结果。在浏览器的界面中使用单元(Cell)保存各种信息。Cell有多种类型,需要强调的是,它也支持MarkDown语法,所以可以有MarkDown格式化文本单元,也可以有表示代码的Code单元。
IPython Notebook有一个重要的特点就是:可重复性的互动计算,这意味着我们可以重复更改并且执行曾经的输入记录。它可以保存成其他很多格式,比如Python脚本,HTML,PDF等,所以它可以记录我们的演算过程。很多课程,博客以及书籍都是用Notebook写的。
4.1 安装并运行
如果执行了上文中IPython的安装过程,IPython Notebook已经算是安装好了。怎么测试呢?Win + R打开运行窗口,输入ipython notebook,如果正确安装的话,这个命令就会默认在本地8888端口启动一个web服务,并
自动打开如下页面:
我们可以点击当前目录下的Notebook文件进行编辑,也可以新建Notebook:
编辑Notebook可以选择代码模式和文本编辑模式,也可以导出各种不同格式的文件:
由于IPython Notebook是基于Web服务模式的,所以我们可以在远程服务器打开IPython服务器,在本地客户端启动IPython Web交互界面,这样可以很方便地操作远程数据
4.2 操作
在一个输入框即Cell中使用回车即Enter键,表示换行,也就是说一个Cell中可以输入多条语句。
一个Cell中的命令可以由两种方式运行:
Shift + Enter小格内的所有代码将会在当前的IPython交互命名空间中运行,运行结果将会立即在输入框下面的输出区域显示,且一个新的输入框会出现。
Ctrl + Enter组合键只会显示运行结果而不会创建新的输入框
我们也可以使用上面的菜单栏和工具栏对Cell进行各种增删复制粘贴等操作
金融量化分析【day110】:IPython介绍及简单操作的更多相关文章
- day31 堡垒机尾声 + Python与金融量化分析(一)
堡垒机尾声: 代码案例:https://github.com/liyongsan/git_class/tree/master/day31 课堂笔记:file send: 1.选择本地文件 2.远程路径 ...
- 进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用
进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数 ...
- 金融量化分析【day110】:金融基础知识
一.股票 股票: 股票是股份公司发给出资人的一种凭证,股票的持有者就是股份公司的股东. 股票的面值与市值 面值表示票面金额 市值表示市场价值 上市/IPO: 企业通过证券交易所公开向社会增发股票以募集 ...
- day32 Python与金融量化分析(二)
第一部分:金融与量化投资 股票: 股票是股份公司发给出资人的一种凭证,股票的持有者就是股份公司的股东. 股票的面值与市值 面值表示票面金额 市值表示市场价值 上市/IPO: 企业通过证券交易所公开向社 ...
- 金融量化分析-python量化分析系列之---使用python获取股票历史数据和实时分笔数据
财经数据接口包tushare的使用(一) Tushare是一款开源免费的金融数据接口包,可以用于获取股票的历史数据.年度季度报表数据.实时分笔数据.历史分笔数据,本文对tushare的用法,已经存在的 ...
- Python与金融量化分析----金融与量化投资
一:金融了解 金融:就是对现有资源进行重新的整合之后,进行价值和利润的等效流通. 金融工具: 股票 期货 黄金 外汇 基金 ............. 股票: 股票是股份公司发给出资人多的一种凭证,股 ...
- HDFS介绍及简单操作
目录 1.HDFS是什么? 2.HDFS设计基础与目标 3.HDFS体系结构 3.1 NameNode(NN)3.2 DataNode(DN)3.3 SecondaryNameNode(SNN)3.4 ...
- Flume的介绍和简单操作
Flume是什么 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数 ...
- 金融量化分析【day110】:Pandas-DataFrame索引和切片
一.实验文档准备 1.安装 tushare pip install tushare 2.启动ipython C:\Users\Administrator>ipython Python 3.7.0 ...
随机推荐
- https协议详解
HTTPS协议建立过程 1) 客户端首次发送请求时,由于客户端(浏览器等)对一些加解密算法的支持程度不一样,但是在TLS传输中必须使用相同的加解密算法,所以在TLS握手的阶段,客户端告诉服务器端自己支 ...
- ATL右键文件菜单
自己写的小程序中用到的,网上资料相对还是毕竟全的,这里再整理下.毕竟我也不是很了解ATL,里面估计还是有不少问题的,就当作参考吧. 1.创建ATL工程,这个没什么好讲的. 我对COM组件没什么研究,这 ...
- windows环境:idea或者eclipse指定用户名操作hadoop集群
方法 在系统的环境变量或java JVM变量添加HADOOP_USER_NAME(具体值视情况而定). 比如:idea里面可以如下添加HADOOP_USER_NAME=hdfs 原理:直接看源码 /h ...
- Centos7 下Jenkins 安装
前言:什么是Jenkins? Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 一.下载 wg ...
- R语言学习——因子
变量可分为名义型变量.有序型变量或者连续型变量.名义型变量是没有顺序之分的类别变量,如糖尿病类型Diabetes(Type1.Type2),即使在数据中Type1编码为1而Type2编码为2,这也并不 ...
- yidiandian
hzwer libreoj (需要拿新版的打开)
- JavaScript简单了解
一.JavaScript 的诞生历史 在最初的时候 JS 主要解决的问题是一些服务器端语言(perl)对数据的 验证功能,在js 出现之前要对表单的数据进行验证需要将数据提交到服务器 端之后才能验证数 ...
- InetAddress类和InetSocketAddress类
InetAddress 类 封装计算机的 IP 地址,不包含端口号 InetAddress 类常用的方法 1 String getHostAddress() 获得 IP 地址 2 String get ...
- BZOJ3174 TJOI2013 拯救小矮人 贪心、DP
传送门 原问题等价于:先给\(n\)个人排好顺序.叠在一起,然后从顶往底能走即走,问最多能走多少人 注意到一个问题:如果存在两个人\(i,j\)满足\(a_i + b_i < a_j + b_j ...
- SpringCloud(7)服务链路追踪Spring Cloud Sleuth
1.简介 Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin,你只需要在pom文件中引入相应的依赖即可.本文主要讲述服务追踪组件zipki ...