机器学习第8天:IPyhon与Jupyter notebook
一、IPython是什么
ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数。学习ipython将会让我们以一种更高的效率来使用python。同时它也是利用Python进行科学计算和交互可视化的一个最佳的平台之一。
IPython最大的用处之一就是能缩短用户与帮助文档和搜索间的距离,IPython可以做到这些:
- 告诉你如何调用某个函数,该函数有哪些参数和选项。
- 告诉你Python对象的源代码是怎么样的。
- 让你了解到你导入的包中有什么,这个对象有哪些方法和属性。
二、IPython的安装
利用pip实现
pip install ipython
三、IPython功能介绍
(一)用符号?获取文档
每一个Python对象都有一个字符串的引用,该字符串即docstring。大多数情况下,该字符串包含对象的简要介绍和使用方法。在IPython中可以通过?来获取这些内容。
示例一:获取Python对象的信息
In [1]: L = [1,2,3]
In [2]: L?
"""
Type: list
String form: [1, 2, 3]
Length: 3
Docstring:
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
"""
示例二:获取Python中函数的信息
In [3]: L.insert?
"""
Docstring: L.insert(index, object) -- insert object before index
Type: builtin_function_or_method
"""
还有比较重要的一点,“?”查询的方法也适用于自己创建的函数或者其他对象。
In [4]: def square(a):
...: """this a state"""
...: return a ** 2
In [5]: square?
'''
Signature: square(a)
Docstring: this a state
File: c:userskzb<ipython-input-4-5ad2b532b736>
Type: function
'''
(二)用符号??获取源代码
In [6]: square??
'''
Signature: square(a)
Source:
def square(a):
"""this a state"""
return a ** 2
File: c:userskzb<ipython-input-4-5ad2b532b736>
Type: function
'''
如果你经常使用??后缀,就会发现有时它并不能显示源代码,这是因为你查询的对象并不是用Python实现的。
(三)用Tab补全的方式探索模块
IPython中另一个有用的接口是用Tab键自动补全和探索对象、模块及命名空间的内容。
In [7]: L.<tab>
L.append L.count L.insert L.reverse
L.clear L.extend L.pop L.sort
L.copy L.index L.remove
In [8]: L.in
L.index
L.insert
四、jupyter notebook是什么
Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。—这是来自官网的解释
在Python中,如果你想开发大型的爬虫程序或者进行GUI编程,jupyter notebook可能不是好的选择。如果你要进行的是数据清洗、数据分析、机器学习等,我相信它是一个不错的选择
五、jupyter notebook的安装与运行
安装:能用pip解决的问题我们尽量用pip解决,这里还是通过pip来安装
pip install jupyter notebook
运行:运行快捷Tab + R,随后输入jupyter notebook会跳出一个命令行工具,稍等一会浏览器中就会跳出jupyter notebook的界面了
1.命令行界面
2.jupyter notebook界面
六、jupyter notebook介绍
(一)基础功能实现
1.创建python文件:找到主界面右侧的New按钮,选择python3
1.创建python文件
2.界面详解:notebook 界面由以下部分组成:
- notebook 的名称
- 主工具栏,提供了保存、导出、重载 notebook,以及重启内核等选项
- 快捷键
- notebook 主要区域,包含了 notebook 的内容编辑区
2.界面详解
(二)快捷键
jupyter notebook中有众多快捷键,这里我就不一一介绍了,仅列举一些热门的。
快借鉴 |
功能 |
---|---|
H |
显示快捷键帮助 |
Enter |
转入编辑模式 |
Enter+Shift |
运行本单元,选中下个单元 |
Ctrl-Enter |
运行本单元 |
esc |
退出编辑模式 |
M |
单元转入markdown状态(在非编辑模式下) |
Y |
单元转入代码状态(在非编辑模式下) |
1 ~ 6 |
设定 1 ~ 6级标题(在非编辑模式下) |
A |
在上方插入新单元 |
B |
在下方插入新单元 |
X |
剪切选中的单元 |
C |
复制选中的单元 |
Shift-V |
粘贴到上方单元 |
V |
粘贴到下方单元 |
D,D |
删除选中的单元 |
若是觉得快捷键太难记,也可以选择jupyter notebook界面上方的工具块来实现,小编还是比较倾向于快捷键的。
七、IPython与jupyter notebook的结合运用
我们以 ?? 命令为示例,来演示发生在IPython与jupyter notebook中的碰撞
简单来来说就是上方介绍的在IPython中运行的命令在jupyter notebook中均可运行
参考书籍: python数据科学手册 参考文章: 1.IPython介绍 2.Jupyter Notebook 快速入门 3.Jupyter Notebook 的快捷键
- TortoiseGit安装与配置
- mongodb 速成笔记
- oAuth 2.0 笔记
- JavaScript内置对象--Math对象
- oAuth 2.0 笔记
- common-pool2 学习:thrift连接池的另一种实现
- IntelliJ IDEA 17和Maven构建javaWeb项目
- spring-boot 速成(2) devtools之热部署及LiveReload
- spring-boot 速成(2) devtools之热部署及LiveReload
- 使用git提交项目
- JavaScript中的内置对象--Number对象
- 自动驾驶落地,究竟被什么绑住了脚?
- JDBC(三)数据库连接池(DBCP、C3P0)
- Single Page Application概览
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 「Redis」字符串
- Elasticsearch:pipeline aggregation 介绍
- Qt音视频开发32-Onvif网络设置
- 3分钟短文:说说Laravel模型关联关系最单纯的“一对一”
- Redis 缓存性能实践及总结
- 如何优雅的在react-hook中进行网络请求
- Git commit emoji 食用指南
- 编译安装 ProtoBuf 扩展
- 一键搭建 KMS 服务
- vuepress-theme-yur 使用教程
- 使用 XDebug + Webgrind 进行 PHP 程序性能分析
- 我给自己组装了一台 ITX 小台式
- PHPStorm 常用插件集合
- 优雅地调试线上代码
- WebStorm 配置 ESLint