文档介绍:python数据分析的书Python的数据分析: numpy和pandas入门
今天开始进入Python数据分析工具的教程。
数据分析绝对绕不过的三个包是numpy、scipy和pandas。numpy是Python的数值计算扩展,专门用来处理矩阵,它的运算效率比列表更高效。scipy是基于numpy的科学计算包,包含统计、线性代数等工具。pandas是基于numpy的数据分析工具,能更方便的操作大型数据集。后续的章节关键围绕pandas讲解。numpy和pandas
numpy的数据结构是n维的数组对象,叫做ndarray。Python的list即使也能表示,不过不高效,伴随列表数据的增加,效率会降低。
我们首先载入numpy包,因为它是第三方工具,因此每次使用前必需在代码中载入。as是命名为别名,方便调用,np是numpy约定俗成的简写。
创立数组使用numpy中的array函数,新手要记住加np。我们将系统自带的列表list转换成了numpy中的数组。
嵌套列表会被转换为一个多维数组,它也能够被称为矩阵。
array数组需要注意的是,它内部的元素必需为相同类型,比如数值或字符串。能够用dtype查询其类型,不用加括号。
numpy的数据类型比较丰富,包含int8,int16,int32等,不过这块更靠近计算机底层,数据分析用不太到。当我们想转换数据格式时,能够用astype函数。
数组的计算很方便,不要大量的循环即可批量运算。
数组索引和列表相同,经过方括号和数字即可选择,也可直接赋值。
能够经过递归对多维数组进行筛选,假如省略了后面的索引,则返回次一级的维度,这一点和list一样。
numpy除了上述的基础操作之外,还有reshape、T转置、ufunc、sort等函数,功效强大,大家能够自行查阅文档学习,这里我不再花费时间讲解。对于数据分析师,pandas是一个更常见的包,在抽象概念上它更靠近我们熟悉的excel和sql,也是最关键的分析工具。
pandas有两个关键的数据结构,Series和DataFrame,记住大小写区分,后续使用中不多提醒。Series类似于一维数组,和numpy的array靠近,由一组数据和数据标签组成。数据标签有索引的作用。
加载pandas包,经过Series函数生成一个对象。我们很显著地看到,在jupyter上它的样式不一样于array,它是竖着的。右边是我们输入的一组数据,左边是数据的索引,即标签。数据标签是pandas区分于numpy的主要特征。
索引不一定是从0开始的数字,它能够被定义。
索引的概念有点像SQL的主键,不过它的功效更强大,分析师能够很轻松的经过索引选择一个数据或一组数据。
index函数能够显示Series的索引。Series和array一样,经过方括号选择数据,当要选择多个数据时,应该用列表表示多个索引,因此第三个案例嵌套了两层方括号。
假如数据是一个字典,也能直接经过这个字典创立Series。
此时,字典的key就是Series的索引。
Series有自动对齐索引的功效,当自定义的索引qinqin和字典队员不上时,会自动选择NaN,即结果为空,