python资料.docx
- 文档编号:10208849
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:14
- 大小:19.71KB
python资料.docx
《python资料.docx》由会员分享,可在线阅读,更多相关《python资料.docx(14页珍藏版)》请在冰点文库上搜索。
python资料
python资料
Python对csv的处理:
#edcoding:
utf-8
importpandasaspd
importcsv
df=pd.read_csv('23.csv')
printdf.week#输出week这一列的数据
printdf['week']#输出week这一列的数据
printdf.ix[1]#输出第二行数据(下标是从0开始的)
printdf.iloc[:
1:
4]#输出第二到第四列的数据但是只可以通过序列取,不能通过列名
printdf.ix[:
['LEASETIME','SHEDID']]#通过列名取出数据
printdf.ix[:
[1,5]]#取出第二行和第六行数据(下标是从0开始的)
printdf.ix[5,1]#输出第六行第二列的数据(下标是从0开始的)
printdf.head(10)#取出前十行数据
printdf.tail(10)#取出后十行数据(从后往前数)
printdf[df.week==0]#将week这列等于0的全部取出来
printdf[(df.week==0)&(df.SHEDID==8)]
#将week这一列等于0且SHEDID这一列等于8的数据全部取出(|这个符号表示或)
list=['3','4']
printdf[df.week.isin(list)]#输出week这一列满足是‘3’或‘4’的所有数
print'===================='
printdf.sort_values(by='week',ascending=True)#以week这一列从小到大排序
df['a']=1
printdf#添加a这一列的值全部为1,也可以让他等于一个列表,但列表的长度必须与行数相等
deldf['a']
printdf#删除a这一列
print'==============================================================='
#groupby()这个函数是分组(但是不能单独使用),count()这个方法是统计次数,
printdf.groupby(df.week).count()#以week这一列分组后,统计相同的次数是多少
#分组后可以是用一下方法count()、sum()(求和)、mean()(求平均数)、max()(求最大值)、min()(求最小值)
Python中numpy:
#coding:
utf-8
importnumpyasnp
importarray
importpandasaspd
importnumpyasnp
#列表
n=np.array([1,2,3,4])
printn
list1=[1,2,3,'a']
printlist1
#数组
n=np.array([1,2,3,'a'])
printn
#自定义两行两列数组
b=np.array([[1,2,3],[4,5,6]])
printb
printb.shape
#自定义两行两列数组
#自定义一个3行2列数组
m1=np.array([[1,2],[3,4],[4,5]])
printm1,m1.shape
#访问数组内元素
printm1[0,0]
printm1[1,1]
a=np.arange(5)
printa
printa.dtype
printa.dtype.itemsize
printnp.int8(8.0)
a=1+0.1j
b=0.2
printa+b
a=np.arange(7,dtype='D')
printa
#查看数据类型
printnp.dtype(float)
printnp.dtype('f')
printnp.dtype('f2');printnp.dtype('f4');printnp.dtype('f8')
print"AAAAAAAAAAAAA"
t=np.dtype(float)#t=np.dtype('float')
printt.char,t
#dtype类型属性type
printt.type
#dtype类型属性str保存一个表示数据类型的字符串
printt.str
print"BBBBBBBBBBBBBB"
#一维数组的切片与索引
a=np.arange(10)
printa[3:
5]#左闭右开
printa[1:
7:
2]##左闭右开,间隔2
printa[4:
:
-1]#输出[43210]
print"CCCCCCCCCCCCCCCC"
#处理数组形状
printa.reshape(2,5)#将1行10列数组转换成2行5列数组
b=np.arange(24).reshape(2,3,4)
printb
printb.ravel()#将多为数组降为1维数组,默认以行为准,参数-1以列为准
printb.flatten(-1)#拉直操作,默认以行为准,参数-1以列为准
printb.ravel().reshape(4,6)
printb.ravel().reshape(4,6).transpose()#转秩操作
print"DDDDDDDDDDDDDDDDDDD"
#reshape函数返回一个新数组,但原数组本身.不变;
#resize在返回一个新数组的同时也改变原数组本身。
print"b=",b
print"b.reshape=",b.reshape(4,6)
print"b=",b
b.resize(2,12)
print"b=",b
b.shape=(2,3,2,2)#用元组的形式指定数组形状
printb
print"EEEEEEEEEEEEEEEEEEEEEEEEE"
#堆叠数组
a=np.arange(9).reshape(3,3)
printa
b=a**2
printa**2
c=np.hstack((a,b,a))#水平叠加
d=np.vstack((a,b))#垂直叠加
printc,"Hello",d
printnp.concatenate((a,b),axis=1)#concatenate功能数组叠加,axis=0默认水平叠加,axis=1垂直叠加
d=np.dstack((a,b,a))#深度叠加,沿着第三个坐标轴(纵向)的方向叠加一摞数组。
printd
aa=np.arange
(2)
bb=aa*2
printaa,bb
#column_stack列式叠加,以列方式对一维数组进行堆叠,多维数组和hstack类似
printnp.column_stack((aa,bb))#以列方式对一维数组进行堆叠
printnp.column_stack((a,b))#多维数组和hstack类似
printnp.hstack((a,b))==np.column_stack((a,b))
#row_stack行式叠加,以行方式对一维数组进行堆叠,多维数组和vstack类似
printnp.row_stack((aa,bb))
printnp.row_stack((a,b))
printnp.row_stack((a,b))==np.vstack((a,b))
print"FFFFFFFFFFFFFFFFFFF"
#数组拆分
a=np.arange(9).reshape(3,3)
printa
printtype(np.vsplit(a,3)),np.vsplit(a,3)#纵向切分
printnp.hsplit(a,3)#横向切分
print"深向切分"
print"切分前"
a=np.arange(18).reshape(2,3,3)
printa
print"切分后"
printnp.dsplit(a,3)
print"GGGGGGGGGGGGGGGG"
print"数组的属性,不需要加()"
printa
printa.ndim#数组的维度
printa.shape#数组的每一维度的大小
printa.dtype#数组中元素的数据类型,numpy要求数组元素类型一致
printa.size#数组中元素个数
printa.itemsize#返回数组中各个元素所占用的字节数
printa.itemsize*a.size#返回数组占用空间大小(字节为单位)
b=np.arange(5)
printb
printa.T#转秩,与transpose()函数功能相同
printb.ndim
b=np.array([1,2+2j])#复数用j表示,定义一个数组,包含两个元素
printb.real#获取数组的实部
printb.imag#获取数组的虚部
printb.dtype#复数数据类型自动变成复数类型
b=np.arange(4).reshape(2,2)
f=b.flat
printf[[1,3,2]]#取列表中的某几个元素
foriinf:
#对列表做循环
printi
b.flat=7#对数组整体赋值
printb
b.flat[2]=3
printb#对数组某个元素赋值
b.flat[[2,3]]=2
printb
print"GGGGGGGGGGGGGGGGGGGGGGGGGGG"
print"数组的转换,tolist()方法"
a=np.array([1+1j,0.3+0.8j])
printa
printa.dtype
b=a.tolist()
printb
printtype(b)#此时b已经不是numpy数组,不能再具有dtype属性,查看类型
a=11
printtype(a)#a.dtype
b=np.array([1+1j,0.3+0.8j])
c=b.astype(float)#将数组元素转换成指定类型
printc,b#转换完成虚部被舍弃
print"HHHHHHHHHHHHHHHHHHHHHHH"
print"创建数组的视图"
#acopy=lena.copy()
#printacopy
Python中pandas:
#coding=utf-8
importpandasaspd
importnumpyasnp
#Series
obj=pd.Series([1,2,3,4])
printobj
obj=pd.Series([1,2],index=['a','b'])
printobj
data=pd.Series([0,1,2,3],index=[1,2,3,4])
printdata
printdata[data>1]
printdata*3
printdata[3]
printpd.notnull('a')
#DataFrame
data={'state':
['beijin','shanghai','hangzhou',],'a':
['a','b','c']}
printpd.DataFrame(data)
printpd.DataFrame(data,columns=['state','a'],index=[1,2,3])
a=pd.DataFrame(data)
printa.ix[1]
printa.T
printa[2:
4]
a=pd.Series(np.arange(4,8),index=['a','b','c','d'])
printa
print'aaaaaa'
printa[:
4]
print'aaaaaa'
printa[:
5]
df1=pd.DataFrame(np.arange(1,13).reshape(3,4),columns=['a','b','c','d'],index=['A','B','C'])
printdf1
df2=pd.DataFrame(np.arange(1,10).reshape(3,3),columns=['a','b','e'])
printdf2
printdf1.add(df2,fill_value=0)
Python中matplotlib:
线型图:
importmatplotlib.pyplotasplt
x=[1,3,5]
y=[4,6,8]
x1=[3,4,6]
y1=[5,4,9]
plt.plot(x,y,label='FirstLine')
plt.plot(x1,y1,label='SecondLine')
plt.xlabel('PlotNumber')
plt.ylabel('Importantvar')
plt.title('InterestingGraph\nCheckitout')
plt.legend()
plt.show()
在这里,我们绘制了我们已经看到的东西,但这次我们添加另一个参数label。
这允许我们为线条指定名称,我们以后可以在图例中显示它。
使用plt.xlabel和plt.ylabel,我们可以为这些相应的轴创建标签。
接下来,我们可以使用plt.title创建图的标题,然后我们可以使用plt.legend()生成默认图例
条形图:
importmatplotlib.pyplotasplt
plt.bar([1,3,5,7,9],[5,2,7,8,2],label="Exampleone")
plt.bar([2,4,6,8,10],[8,6,2,5,6],label="Exampletwo",color='g')
plt.legend()
plt.xlabel('barnumber')
plt.ylabel('barheight')
plt.title('EpicGraph\nAnotherLine!
Whoa')
plt.show()
plt.bar为我们创建条形图。
如果你没有明确选择一种颜色,那么虽然做了多个图,所有的条看起来会一样。
这让我们有机会使用一个新的Matplotlib自定义选项。
你可以在任何类型的绘图中使用颜色,例如g为绿色,
b为蓝色,r为红色,y为黄色,k为黑色,w为白色,买等等。
你还可以使用十六进制颜色代码,如#191970。
直方图:
接下来,我们会讲解直方图。
直方图非常像条形图,倾向于通过将区段组合在一起来显示分布。
这个例子可能是年龄的分组,或测试的分数。
我们并不是显示每一组的年龄,而是按照20~25,25~30…等等来显示年龄。
这里有一个例子:
importmatplotlib.pyplotasplt
population_ages=[22,55,62,45,21,22,34,42,42,4,99,102,110,120,121,122,130,111,115,112,80,75,65,54,44,43,42,48]
bins=[0,10,20,30,40,50,60,70,80,90,100,110,120,130]
plt.hist(population_ages,bins,histtype='bar',rwidth=0.8)
plt.xlabel('x')
plt.ylabel('y')
plt.title('InterestingGraph\nCheckitout')
plt.legend()
plt.show()
对于plt.hist,你首先需要放入所有的值,然后指定放入哪个桶或容器。
在我们的例子中,我们绘制了一堆年龄,并希望以10年的增量来显示它们。
我们将条形的宽度rwidth设为0.8,但是如果你想让条形变宽,或者变窄,你可以选择其他的宽度。
散点图
importmatplotlib.pyplotasplt
x=[1,2,3,4,5,6,7,8]
y=[5,2,4,2,1,4,5,2]
plt.scatter(x,y,label='skitscat',color='k',s=25,marker="o")
plt.xlabel('x')
plt.ylabel('y')
plt.title('InterestingGraph\nCheckitout')
plt.legend()
plt.show()
plt.scatter不仅允许我们绘制x和y,而且还可以让我们决定所使用的标记颜色color,大小s和类型marker。
有一堆标记选项,请参阅Matplotlib标记文档中的所有选项。
堆叠图:
在这篇Matplotlib数据可视化教程中,我们要介绍如何创建堆叠图。
堆叠图用于显示『部分对整体』随时间的关系。
堆叠图基本上类似于饼图,只是随时间而变化。
让我们考虑一个情况,我们一天有24小时,我们想看看我们如何花费时间。
我们将我们的活动分为:
睡觉,吃饭,工作和玩耍。
我们假设我们要在5天的时间内跟踪它,因此我们的初始数据将如下所
importmatplotlib.pyplotasplt
days=[1,2,3,4,5]
sleeping=[7,8,6,11,7]
eating=[2,3,4,3,2]
working=[7,8,7,2,2]
playing=[8,5,7,8,13]
plt.plot([],[],color='m',label='Sleeping',linewidth=5)
plt.plot([],[],color='c',label='Eating',linewidth=5)
plt.plot([],[],color='r',label='Working',linewidth=5)
plt.plot([],[],color='k',label='Playing',linewidth=5)
plt.stackplot(days,sleeping,eating,working,playing,colors=['m','c','r','k'])
plt.xlabel('x')
plt.ylabel('y')
plt.title('InterestingGraph\nCheckitout')
plt.legend()
plt.show()
我们在这里做的是画一些空行,给予它们符合我们的堆叠图的相同颜色,和正确标签。
我们还使它们线宽为5,使线条在图例中显得较宽。
现在,我们可以很容易地看到,
我们如何花费我们的时间。
饼状图:
饼图很像堆叠图,只是它们位于某个时间点。
通常,饼图用于显示部分对于整体的情况,通常以%为单位。
幸运的是,Matplotlib会处理切片大小以及一切事情,我们只需
要提供数值。
importmatplotlib.pyplotasplt
slices=[7,2,2,13]
activities=['sleeping','eating','working','playing']
cols=['c','m','r','b']
plt.pie(slices,
labels=activities,
colors=cols,
startangle=90,
shadow=True,
explode=(0,0.1,0,0),
autopct='%1.1f%%')
plt.title('InterestingGraph\nCheckitout')
plt.show()
在plt.pie中,我们需要指定『切片』,这是每个部分的相对大小。
然后,我们指定相应切片的颜色列表。
接下来,我们可以选择指定图形的『起始角度』。
这使你可以在任
何地方开始绘图。
在我们的例子中,我们为饼图选择了90度角,这意味着第一个部分是一个竖直线条。
接下来,我们可以选择给绘图添加一个字符大小的阴影,然后我们
甚至可以使用explode拉出一个切片。
我们总共有四个切片,所以对于explode,如果我们不想拉出任何切片,我们传入0,0,0,0。
如果我们想要拉出第一个切片,我们传入0.1,0,0,0。
最后,我们使用autopct,选择将
百分比放置到图表上面。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- python 资料