Python数据分析包的学习

浏览: 939

用Python进行数据分析时常用包有numpy、scipy、pandas,matplotlib,由于自己现在还是数据分析的初级阶段,一般情况下numpy、pandas、matplotlib包的一些基本知识就够自己在数据分析时使用了。接下来为大家数理下这几个包的使用

阅读路线

  • numpy包学习
  • pandas包学习
  • python绘图

numpy包的学习

numpy是Python的数值计算扩展,专门用来处理矩阵,你可能也会想Python本身不是有list吗,为什么不直接用呢,答案是numpy的运算效率要远比列表要高效的多。
numpy是n维的数组对象,叫做ndarray.其中创建数组用的函数是numpy包中的array函数。

  • 创建一个一维数组
  • 创建一个二维数组

嵌套的列表会被转换成多位数组,也是叫矩阵。同时array数组要求内部的元素为相同的类型。

  • 数组的批量计算

  • 查找

其实数组的索引和列表是相似的,通过方括号和数字即可完成,也可以进行赋值

对多维度数组进行查找

  • 转置

这里只是简单介绍了numpy包的入门,numpy还是有很多的操作,但是对于初级的数据分析师来说,pandas这个包则是更为常用,所以下面集中火力讲这方面的知识。

pandas的学习

pandas有两个主要的数据结构,Series和DataFrame,此时还应该注意他们的大小写。Series其实类似于一维数组,和numpy的array接近,是由一组数据和数据标签来组成的,很显然,数据标签有索引的作用。

  • Series

    用Series函数生成数组,其中能够很明显的看到,这里生成的数组和通过array函数生成的不一样。左边是索引,右边是标签。其实还是可以定义索引的。

获取一个数据或是一组数据

并且选取多个数据的时候,应该用列表表示多个索引。如果数据是字典,也可以直接通过字典创建列表

其实字典key就是列表的索引.

  • DataFrame

Series是一维的数据结构,DataFrame是一个表格型的数据结构,有不同的列,并且每一列都可以是不同的数据类型。我们可以把它类似于Excel或者是SQL

下面用传入字典的方法来创建一个DataFrame结构

DataFrame中通过info函数直接查看数据类型和统计

两种索引方式进行选取列

用索引字段ix的方式选取行

列可以通过赋值的方式修改和添加,当列的名称是全新,则会在DataFrame的最右边自动加上新的一列。

DataFrame在数据选取上面的诸多使用:

Paste_Image.pngPaste_Image.png

进行我们常用的逻辑判断

当行和列需要同时选择的时候,用ix,之间用逗号分割,逗号前是想要选择的行,逗号后是想要选择的列。

numpy和pandas的基础差不多就这么多了,剩下的就要在练习中来掌握了。

Python绘图

Python进行数据分析时,matplotlib和pandas是绘图方面最常用到的两个库,下面简单介绍下如何使用。

  • matplotlib库的应用
    %matplotlib inline   #使用R语言中的ggplot2配色作为绘图风格,为好看
    plt.style.use("ggplot"#%matplotlib inline是jupyter自带的方式,允许图表在cell中输出。
    import numpy as np 
    import matplotlib.pyplot as plt
    #第一步:建立空白图,也可以指定所建立图的大小,添加figsize=()
    fig1 = plt.figure()    
    #第二步:创建subplot,一个窗口可以添加多个子绘图区。其中subplot()函数中的三个数字,第一个表示Y轴方向的子图个数,
    第二个表示X轴方向的子图个数,第三个则表示当前要画图的焦点。 
    ax1=plt.subplot(2,2,1)      
    ax2=plt.subplot(2,2,2)
    ax3=plt.subplot(2,2,3)
    ax4=plt.subplot(2,2,4)
    #第三步:subplot中绘图
    调用子绘图区的方法,可以绘制点线图、频数图、散点图等常用图形。
    ax1.plot(np.random.randn(50).cumsum(),'k--')  
    ax4.hist(np.random.randn(30))
    #第四步:设置各种参数
    ax1.set_xlim(-10,60)   #set_xlims设置坐标轴的上下限
    ax1.set_xticks([0,20,40,60])  #set_ticks设置坐标刻度
    ax1.set_xticklabels(['a','b','c','d']) #set_ticklabel设置坐标标注
    #第五步:清除和保存图形
    ax1.clear()  
    fig1.savefig(‘.\\test.jpg’)  # #windows下的路径  

  • pandas库的应用

相比于利用matplotlib库绘图,采用pandas绘图要便捷得多。使用的是plot()方法,对于Series和DataFrame类型的数据,可以直接调用两种类型对应的plot方法,绘图时自动采用索引值绘制横坐标,采用每一列数据绘制纵坐标。这里分别以两类数据为例。

se1 = Series(np.random.randn(30).cumsum())  
df = DataFrame({'a':np.random.randn(30),'b':np.random.randn(30)})

参数设置也是挺方便的,在plot()方法参数列表中添加相应参数值即可。常用的有:类型kind可设置为line(线图)、bar(垂直柱状图)、barh(水平柱状图)、kde(核密度估计图),另外还有color颜色设置、linestyle线型设置、alpha设置透明度、grid设置网格等。

import matplotlib.pyplot as plt
%matplotlib inline   
plt.style.use("ggplot"
import pandas as pd  
from pandas import Series,DataFrame  
import numpy as np  
se1 = Series(np.random.randn(30).cumsum())  
df = DataFrame({'a':np.random.randn(30),'b':np.random.randn(30)})
se1.plot(kind = 'bar', color = 'g', alpha = 0.5, grid=True)  
df.plot(kind = 'bar', alpha=0.5)  

清除和保存图形

df.plot()  
#清除绘图  
_.get_figure().clear()  
#关闭窗口  
plt.close()  

但是有的图形还是要依靠matplotlib,两者结合起来绘图将是更加的方便。

推荐 0
本文由 DataFrog 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册