IPython介绍
本文编写时,IPython最新的版本为6.3和5.4。
介绍
IPython 是 Fernando 在 2001 开始开发的一个交互式的Python解释执行环境。众所周知,Python提供了一个交互执行的环境,在命令行输入python
或者python3
就可以进入Python的命令行环境,但在实际工作中并不方便,IPython则提供了一个更为强大的环境,主要包括以下几方面内容:
- 一个强大的交互式Shell环境
- Jupyter内核
- 支持交互式的数据可视化
- 灵活,可被嵌入到单独的工程中
- 使用简单,并行计算的高效工具
本文依次介绍这几个方面,方便大家熟悉IPython环境。
Mac 下的安装
安装非常简单,我的Python版本时3.6,所以用了 pip3,如果需要jupyter notebook或者Qt支持,也需要同步安装jupyter。Python数据分析这本书中推荐使用EDM这是一个集成环境,可能对软件依赖管理的比较好,其实自己安装也没什么问题。
pip3 install ipython
pip3 install jupyter
# 如果需要交互式的可视化终端,还需要安装pytq5
pip3 install pyqt5
交互式Shell环境
命令行输入IPython就可以进入ipython的环境,输入前面包含In和行号,输出包含Out和行号。
与操作系统交互
IPython和操作系统结合的非常紧密,可以直接在命令行中执行操作系统的命令。
Tab补齐与提示
在IPython的界面中,按Tab键可以做很多工作,如果执行Shell命令,tab可以补齐文件名,如果是Python代码,可以补齐变量名,用.
之后,可以提示对象包含的属性和方法。
记录命令历史
IPython在本地磁盘维护了一个小型的数据库来记录用户输入的历史以及输出的日志,并且提供了几个快捷键,方便大家快速查找历史命令。还可以用%hist
来查看输入的历史记录。
快捷键 | 功能描述 |
---|---|
Ctrl + P | 向上搜索历史,等同于向上箭头 |
Ctrl + N | 向下搜索历史,等同于向下箭头 |
Ctrl + R | 增量搜索历史记录,这个命令玩过Linux的同学应该比较熟悉 |
输入和输出变量
IPython环境对用户的输入和输出都会记录。输入变量保存在_iX
格式的变量中,X表示行号。如果我们想查看第2行的输入内容,可以使用_i2
。
目录书签系统
IPython提供了一个简单的目录书签系统,可以方便我们快速切换目录。书签会被自动初始化,这样可以在不同会话间保留。
In [1]: %bookmark -l
Current bookmarks:
baby -> /Users/rousseau/Projects/python.my/pydata-book/datasets/babynames
In [2]: %bookmark moviedb /Users/rousseau/Projects/python.my/pydata-book/datasets/movielens
In [3]: %bookmark -l
Current bookmarks:
baby -> /Users/rousseau/Projects/python.my/pydata-book/datasets/babynames
moviedb -> /Users/rousseau/Projects/python.my/pydata-book/datasets/movielens
对象内省 Comprehensive object introspection
使用 ? 可以查看对象的一些信息。
使用 ?? 可以查看对象的源码(如果可能)
魔术命令
IPython中提供了一些以%
开头的特殊命令,我们称这些命令为魔术命令 Magic Command。魔术命令可以认为是IPython系统中的命令行程序,使用?
可以查看选项。魔术命令也可以不带百分号直接使用,只要没有定义与其同名的变量就可以,这个技术叫做 automagic ,可以通过 %automagic
打开或关闭。可以在IPython中查看相关文档,输入%magic
即可。
常用的魔术命令
命令 | 命令解释 |
---|---|
%quickref | 现实IPython的快速参考 |
%magic | 显示所有magic命令的详细文档 |
%debug | 从最新的异常跟踪的底部进入交互式调试器 |
%hist | 打印命令输入的历史 |
%timeit | 测试脚本的运行时间,多次执行以获得代码的平均执行时间 |
%automagic | 控制automagic功能是否开启 |
%paste | 执行剪贴板中的Python代码 |
%reset | 删除interactive命名空间中的全部变量/名称 |
%run script.py | 在IPython中执行一个Python脚本 |
%logstart | 开始会话日志记录功能 |
%run 命令
在IPython环境中,所有文件都可以通过%run命令当作Python程序来运行。我理解就是把Python脚本放到一个新的命名空间中进行后台运行,通过IPython交互环境,可以调用现实Python程序中的变量。
执行剪贴板中的代码
对于一线代码片段,可以拷贝到IPython的环境中执行查看结果,但是对于有空行的代码,直接使用操作系统的复制粘贴快捷键会报错,这个时候需要使用%paste
和%cpaste
这两个魔术函数。%paste
函数会将粘贴板中的代码粘贴到交互式命令行中。%cpaste
函数执行后,进入一个交互环境,只有输入__
或者Ctrl+D才结束代码的复制。
交互式数据可视化
IPython支持给予Qt框架的GUI控制台,如下图所示。如果需要交互环境,需要安装PyQt5。
IPython可以与matplotlib密切结合。
开发调试利器
%debug
%pdb
本文为作者原创,如果您觉得本文对您有帮助,请随意打赏,您的支持将鼓励我继续创作。
参考资料:
1、IPython
2、Jupyter
3、matplotlib
IPython介绍的更多相关文章
- 金融量化分析【day110】:IPython介绍及简单操作
一. IPython介绍 ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能 ...
- ipython介绍及使用
1. IPython介绍 ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能 ...
- IPython介绍及安装
IPython介绍 - CSDN博客https://blog.csdn.net/gavin_john/article/details/53086766 python命令行在windows下实现tab自 ...
- 开发技术-IPython介绍
开发技术-IPython介绍 IPython是交互式的Python命令行,希望大家喜欢. 最近在回顾之前学习的内容,并且继续学习新的知识.这种自身的感觉,很不一般,有太多的感想产生.希望自己可以坚持将 ...
- pandas介绍及环境部署
pandas介绍 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的 ...
- Ipython\Jupyter数据分析工具
使用Python进行数据分析优点 1 Python大量的库为数据分析和处理提供了完整的工具集 2 比起R和Matlab等其他主要用于数据分析的编程语言,Python更全能 3 Python库一直在增加 ...
- IPython introduction
转载:http://blog.csdn.net/gavin_john/article/details/53086766 1. IPython介绍 ipython是一个python的交互式shell,比 ...
- PyCharm控制台python shell 和 IPython shell的切换
1. IPython介绍 IPython 是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许 ...
- 开发技术--Python核心知识A
开发|Python核心知识A A篇,主要介绍Python基础中列表,元祖,字典,集合,字符串,I/O,条件与循环,异常处理的底层知识与使用的注意事项. 希望大家对于Python会有新的收获,本篇不同于 ...
随机推荐
- 开始使用KVM和QEMU
一. 简介 Quick Emulator(QEMU) 是QEMU/KVM虚拟化套件中的主要组成部分. 它提供了硬件的虚拟化和处理器的仿真. QEMU不用运行在内核,它是运行在用户空间的. QEMU支持 ...
- Gitlab Webhooks, External Services, and API(二)
一. 使用webhooks webhook 是一个API的概念,并且变得越来越流行.我们能用事件描述的事物越多,webhook的作用范围也就越大.webhook作为 个轻量的事件处理应用,正变得越来越 ...
- CSS html标签元素分类
在CSS中,html中的标签元素大体被分为三种不同的类型: 块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <div>.<p>.<h1>… ...
- JSONObject 自定义过滤配置
一.自定义过滤器说明 PropertyPreFilter 根据PropertyName判断是否序列化 PropertyFilter 根据PropertyName和PropertyValue来判断是否 ...
- kotlin 安装 使用
插件下载 下载 kotlin 扩展 . 可以 简写 findviewbyid 这些. 比如 id 是 textview 直接 这样赋值 textview.setText("测试文字" ...
- poj 2599 单调栈 ***
和poj2082差不多,加了一个宽度的条件 #include<cstdio> #include<cmath> #include<algorithm> #includ ...
- 【转】SQL Server游标的使用
在关系数据库中,我们对于查询的思考是面向集合的.而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服. 正常面向集合的思维方式是: 而对于游标来说: ...
- 你的java/c/c++程序崩溃了?揭秘段错误(Segmentation fault)(3)
前言 接上两篇: 你的C/C++程序为什么无法运行?揭秘Segmentation fault (1) 你的C/C++程序为什么无法运行?揭秘Segmentation fault (2) 写到这里,越跟 ...
- nuxus 3在Maven项目的配置和POM文件的配置
在nuxus 3中的Maven默认会创建三个仓库,这三个仓库的关系如下: public是release和snapshot的全集,release默认为关闭状态,所以在配置nexus 3时需要将其开启. ...
- LPC18xx and LPC43xx 选型及差异
Q LPC43xx和LPC18xx有相同的USB接口以及片内USB驱动吗?A 是的. Q LPC4300和LPC1800只是内核不同吗?外设和管脚配置都完全一致?A 为LPC18xx的映像可以直接在L ...