栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python入门知识(4)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python入门知识(4)

文章目录
  • matplotlib基础
    • matplotlib须知
    • plot函数绘制折线图
  • Pandas基础
    • Pandas须知
    • Pandas的数据结构
      • Series
      • DataFrame
    • Pandas索引
      • 一维序列索引——Series
      • 多维序列索引——DataFrame
  • 结束语

matplotlib基础 matplotlib须知

matplotlib是python最著名的绘图库,它提供了—整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。

其中,matplotlib的pyplot子库提供了和matlab类似的绘图API,方便用户快速绘制2D图标。
matplotlib中的快速绘图的函数库可以通过如下语句载入:

import matplotlib.pyplot as plt

接下来调用figure创建一个绘图对象,并且使他成为当前的绘图对象:

plt.figure(figsize=(8,4))

其中,figsize参数可以指定绘图对象的宽度和高度,单位为英尺;
此外,还有dpi的值,即绘图对象的分辨率,也就是每英寸包含多少个像素,缺省值为80。因此本例子中所创建的图标窗口的宽度为8*80=640像素。

关于figure函数:
①也可以不创建绘图对象直接调用接下来的plot函数直接绘图。
②如果需要同时绘制多幅图标的话,可以是给figure传递一个整数参数指定图标的序号。
③如果所指定序号的绘图对象已经存在的话,将不创建新的对象,而只是让它成为当前绘图对象。

plot函数绘制折线图

相关函数:
①label:给所绘制的曲线一个名字,此名字在图示(legend)中显示
②color:指定曲线的颜色
③linewidth:指定曲线的宽度
④其中‘b–’参数指定的是曲线的颜色和线型
⑤xlabel/ylabel:设置x轴/y轴的文字
⑥title:设置图表的标题
⑦ylim:设置y轴的范围
⑧legend:显示图示
代码如下:

import numpy as np
import matplotlib.pyplot as plt
plt.figure(figsize=(8,4))
x=np.linspace(0,10,100)
y=np.sin(x)
z=np.cos(x**2)
plt.plot(x,y,label='sin(x)',color='red',linewidth=2)
plt.plot(x, z, 'b--', label='cos(x^2)')
plt.xlabel('Time(s)')
plt.ylabel('volt')
plt.title('PyPlot First Example')
plt.ylim(-1.2,1.2)
plt.legend()
plt.show()

第一、二行:numpy和pyplot包的导入。
第三行:创建一张八英寸宽,四英寸高的画布。
第四行:用numpy中的linspace函数创建一个在0~10之间递增的序列并均分为1000份,然后存入变量x中。
第五行:将刚创建好的x变量带入numpy中自带的正弦函数中,得出相应的序列y。
第六行:将变量x的平方带入numpy中自带的余弦函数中,得出相应的序列z。
第七行:向plot函数中分别传入横轴数据、纵轴数据,曲线名称(label),曲线颜色(color),线的粗细(linewidth)
第八行:向plot函数中分别传入横轴数据、纵轴数据,曲线的颜色和样式(b–),以及曲线名称(cos(x^2))。
第九行:横坐标名。
第十行:纵坐标名。
第十一行:图标名。
第十二行:y轴范围大小设置
第十三行:显示图注
第十四行:显示图示

运行结果:

在得到图表后,我们可以通过调用plt.savefig()将当前的figure对象保存成图像文件,图像格式由图像文件的扩展名决定。

plt.savefig('D:test.jpg',dpi=600)

实际上不需要调用show()显示图表,可以直接用savefig()将图表保存成图像文件,使用这种方法可以很容易编写出批量输出图表的程序。

Pandas基础 Pandas须知

Pandas是Python的一个数据分析包。
Pandas纳入大量库和标准数据类型,提供高效的操作数据集所需的工具。
Pandas提供大量能使我们快速便捷地处理数据的函数和方法。
Pandas是字典形式,基于NumPy创建,让NumPy为中心的应用变得更加简单。
Pandas最核心的就是Series和DataFrame两个数据结构:

名称维度说明
Series1维带有标签的同结构类型数组
DataFrame2维表格结构,带有标签,大小可变,且可以包含异构数组

注:一个DataFrame中可以包含若干个Series。

Pandas的数据结构

利用Series和DataFrame函数进行列表或字典导入:

import pandas as pd # 引入模块别名
x=pd.Series(list/dictionary)
x=pd.DataFrame(list/dictionary)
Series

Series类似于numpy中的一维数组,除了通吃一维数组可用的函数或方法,而且其可通过索引标签的方式获取数据,还具有索引的自动对齐功能;
有常用的两种方式创建:
①通过列表创建
②通过字典创建

应用实例①,通过列表创建:

import numpy as np # 基于numpy的pandas
import pandas as pd
arr1 = np.arange(10)
s1 = pd.Series(arr1)
print(s1)

运行结果:

其中左边为索引号,右边为索引值,最下面显示的是数据类型(32位整型)。

应用实例②,通过字典创建:

#import numpy as np
import pandas as pd
dic1={'a':10, 'b':20, 'c':30, 'd':40, 'e':50}
s2 = pd.Series(dic1)
print(s2)

运行结果:

其中左边为关键字,右边为索引值,最下面显示的是数据类型(64位整型)。

DataFrame

DataFrame类似于numpy中的二维数组,同样可以通用numpy数组的函数和方法,而且还具有其他灵活应用。
也是有常用的两种方式创建:
①通过列表创建
②通过字典创建

应用实例①,通过列表创建:

import numpy as np
import pandas as pd
arr2 = np.arange(12).reshape(4,3)
df1 = pd.DataFrame(arr2)
print(df2)

运行截图:

默认的行列索引和列名都是[0,N-1]的形式。

应用实例②,通过字典创建:

#import numpy as np
import pandas as pd
dic2 = {'a':[1,2,3,4], 'b':[5,6,7,8], 'c':[9,10,11,12], 'd':[13,14,15,16]}
df2 = pd.DataFrame(dic2)
print(df2)

运行结果:

应用实例③,在创建DataFrame的时候指定列名和索引。以列表为例:

import numpy as np
import pandas as pd
arr2 = np.arange(12).reshape(4,3)
df1 = pd.DataFrame(arr2)
df1.columns={'colm1', 'colm2', 'colm3'}
print(df1)

运行结果:

注:
①DataFrame的不同列可以是不同的数据类型。
②如果以Series数组来创建DataFrame,每个Series将成为一行,而不是一列。

Pandas索引

序列或数据框的索引有两大用处:
①通过索引值或索引标签获取目标数据。
②通过索引,可以使序列或数据框的计算、操作实现自动化对齐。

一维序列索引——Series

①使用s1[index]索引

import numpy as np
import pandas as pd
arr1 = np.arange(10)
s1 = pd.Series(arr1)
#print(s1,'n')
print(s1[5],'n')
#print(s1[0:3])

运行结果:

②使用s1[:]切片

import numpy as np
import pandas as pd
arr1 = np.arange(10)
s1 = pd.Series(arr1)
#print(s1,'n')
#print(s1[5],'n')
print(s1[0:3])

运行结果:

多维序列索引——DataFrame

①通过标签选择
loc:通过行和列的索引来访问数据,用例如下:

#import numpy as np
import pandas as pd
dic2 = {'a':[1,2,3,4], 'b':[5,6,7,8], 'c':[9,10,11,12], 'd':[13,14,15,16]}
df2 = pd.DataFrame(dic2)
print(df2)
print(df2.loc[0])

运行截图:

在这里我们就用loc函数取出了字典中标签为‘0’的一行。

②通过标签来在多个轴上进行选择,如图:

代码如下:

#import numpy as np
import pandas as pd
dic2 = {'a':[1,2,3,4], 'b':[5,6,7,8], 'c':[9,10,11,12], 'd':[13,14,15,16]}
df2 = pd.DataFrame(dic2)
#print(df2)
print(df2.loc[:,['a','b']])

运行结果:

③标签切片,如图:

#import numpy as np
import pandas as pd
dic2 = {'a':[1,2,3,4], 'b':[5,6,7,8], 'c':[9,10,11,12], 'd':[13,14,15,16]}
df2 = pd.DataFrame(dic2)
#print(df2)
print(df2.loc['1':'3',['a','c']])


可以看到,在对标签进行切片时,切片结果是闭区间而不是左闭右开区间,这里需要注意。
④通过位置进行选择:
iloc:通过行和列的下标来访问数据
这里我们通过传递数值进行位置选择(选行):

#import numpy as np
import pandas as pd
dic2 = {'a':[1,2,3,4], 'b':[5,6,7,8], 'c':[9,10,11,12], 'd':[13,14,15,16]}
df2 = pd.DataFrame(dic2)
#print(df2)
print(df2.iloc[3])


⑤通过数值进行切片

#import numpy as np
import pandas as pd
dic2 = {'a':[1,2,3,4], 'b':[5,6,7,8], 'c':[9,10,11,12], 'd':[13,14,15,16]}
df2 = pd.DataFrame(dic2)
#print(df2)
print(df2.iloc[1:3,0:2])

运行结果:

可以看出,当我们在用位置或是说数值进行切片访问的时候(iloc),采取了左闭右开区间的方式,与之前的认知相符合,要和标签切片访问(loc)做好区分。

⑥通过指定一个位置的列表
这里我们通过相邻或者不相邻的几个位置来打印数据,用例如下:

#import numpy as np
import pandas as pd
dic2 = {'a':[1,2,3,4], 'b':[5,6,7,8], 'c':[9,10,11,12], 'd':[13,14,15,16]}
df2 = pd.DataFrame(dic2)
#print(df2)
print(df2.iloc[[0,1,3],[2,3]])

运行截图:

⑦对行进行切片
这里仍然是左闭右开区间:

#import numpy as np
import pandas as pd
dic2 = {'a':[1,2,3,4], 'b':[5,6,7,8], 'c':[9,10,11,12], 'd':[13,14,15,16]}
df2 = pd.DataFrame(dic2)
#print(df2)
print(df2.iloc[1:3,:])

运行截图:

⑧对列进行切片

#import numpy as np
import pandas as pd
dic2 = {'a':[1,2,3,4], 'b':[5,6,7,8], 'c':[9,10,11,12], 'd':[13,14,15,16]}
df2 = pd.DataFrame(dic2)
#print(df2)
print(df2.iloc[:,1:4])

运行截图:

结束语

本篇博客主要介绍了Python中matplotlib的绘图以及pandas基础等内容,Python的入门内容就告一段落了。后面将继续更新Python面向对象编程、机器学习算法等内容,感谢观看。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/954800.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号