ipython和jupyter 常用操作
?
在变量前后使用问号?,可以显示对象的信息
这可以作为对象的自省。如果对象是一个函数或实例方法,定义过的文档字符串,也会显示出信息。
??
使用??会显示函数的源码
%run命令
你可以用%run命令运行所有的Python程序
ipython中常用快捷键
魔术命令
numpy
ndarray是一个通用的同构数据多维容器,每个数组都有一个shape(一个表示各维度大小的元组)和一个dtype(一个用于说明数组数据类型的对象)
创建ndarray
创建数组最简单的办法就是使用array函数。它接受一切序列型的对象(包括其他数组),然后产
生一个新的含有传入数据的NumPy数组。
1 |
|
嵌套序列(比如由一组等长列表组成的列表)将会被转换为一个多维数组:
1 |
|
类型转换
astype方法明确地将一个数组从一个dtype转换成另一个dtype
注:如果将浮点数转换成整数,则小数部分将会被截取删除
1 |
|
如果某字符串数组表示的全是数字,也可以用astype将其转换为数值形式
1 |
|
NumPy数组的运算
符号 | 作用 |
---|---|
+ | 按元素相加 |
- | 按元素相减 |
* | 按元素相乘 |
/ | 按元素相除 |
** | 按元素乘方 |
基本的索引和切片
基本与python相同
注意:如果你想要得到的是ndarray切片的一份副本而非视图,就需要明确地进行复制操作,
例如 arr[5:8].copy() 。
pandas
Series
Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关
的数据标签(即索引)组成。
1 |
|
Series的字符串表现形式为:索引在左边,值在右边。索引默认为0-n-1,可以通过 index= 指定
1 |
|
.values获得值
.index获得索引
使用NumPy函数或类似NumPy的运算(如根据布尔型数组进行过滤、标量乘法、应用数学函数
等)都会保留索引值的链接
还可以将Series看成是一个定长的有序字典,因为它是索引值到数据值的一个映射。它可以用在许
多原本需要字典参数的函数中
如果数据被存放在一个Python字典中,也可以直接通过这个字典来创建Series
如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列)。你可以传入排好序的字典的键以改变顺序
pandas的isnull和notnull函数可用于检测缺失数据
Series对象本身及其索引都有一个name属性,该属性跟pandas其他的关键功能关系非常密切
Series的索引可以通过赋值的方式就地修改
obj.index = []
DataFrame
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字
符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用
同一个索引)。DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维
数据结构)。有关DataFrame内部的技术细节远远超出了本书所讨论的范围。
对于特别大的DataFrame,head方法会选取前五行
frame.head()
获取一列
frame['col_name']或frame.col_name
获取一行
frame.loc['name']
如果嵌套字典传给DataFrame,pandas就会被解释为:外层字典的键作为列,内层键则作为行索引
与python的集合不同,pandas的Index可以包含重复的标签