任何学习的成长,都是跳出舒适区后,从挣扎到顿悟到过程。
其实本周的作业并不限工具,至少说最好是python。于是我首先想到用excel来做。很快,我就把作业做完了。当我还在窃喜自己这次如此高效完成作业的同时,余博士的两篇介绍Anaconda的文章,带领不少小伙伴快速跨进了专业的数据分析大门。
致Python初学者们 - Anaconda入门使用指南
左手程序员,右手作家:你必须会的Jupyter Notebook
仔细想想,我到底是为了完成作业,还是为了拓展自己的能力啊?
在内心把自己鄙视一番之后,开始老老实实安装python和anaconda。在安装阶段就遇到了不少困难,在余博士和李佳同学的帮助下,顺利安装好了Anaconda。不禁要再一次感叹:好的社群氛围绝对是提高学习兴趣和信心的必要条件!
回到作业本身,tiger其实已经给出了代码范例,只要去搞懂每行代码是什么意思就好。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
导入pandas模块,并定义为pd。
导入numpy模块,并定义为np。
导入matplotlib的pyplot模块,并定义为plt。
从scipy模块导入stats子模块。
weight_data = pd.read_table('weight.txt')
weight_data.shape
用pd的read_table函数读取文档“weight.txt”,并定义为weight_data。
用np的shape属性获取weight_data。
在第二题中,原始数据类型不同,不能直接用read_table了,需要换成read_csv。
weight.mean()
weight.var()
显示weight的平均值。
显示weight的方差。
fig = plt.figure()
x = weight_data['weight']
ax = fig.add_subplot(111)
numBins = 15
ax.hist(x,numBins,color='blue',rwidth=0.9)
plt.title(u'weight')
plt.show()
用plt的figure函数新建绘图,并定义为fig。
定义X为weight_data中weight列的数据。
用fig画图,并名为ax,(111)就是显示在矩阵块的1行1列的第1块,也就是1块白板吧。
定义柱子有15根。
用hist函数显示ax绘图,x是横轴数据,15根蓝色柱子,宽度为0.9。
plt命名为weight。
用show函数显示结果。
在做第二题的直方图时,我发现用跟体重直方图一样的方式,很难总结出什么规律,也跟我用excel时呈现的图表完全不一样。于是我开始思考这2者的区别:
1,体重数据分析时,仅仅是单纯的1组数据,我们能得到的信息只有分布情况。
2,当原始数据中包含了时间元素后,我们能得到的信息就一下多了很多。因为时间的属性本来就有多个维度去分析。
比如,时间变化跟乘客数量变化对关系、整体乘客增长、每年的同比增长……
要得到不同的分析结果,就需要用不同的方法来分析数据,以上面3个目的为例,把时间放在X轴,乘客数量放在Y轴,更合理更直观。直方图应该是这样的:
乘客数量直方图如此可视化,才能得到数据反映出来的信息(我对数据的分析):
1,该公司的运营情况非常良好,乘客逐年稳步增加。
2,乘客数量波动非常稳定,推断每年7,8月是旺季,11月为淡季。
引发我这样去思考的契机,就是我用2种工具来做同一件事的时候,得到的结果不一样。如果当初我用excel做完作业之后,就不管了,也许就错过了这次有意思的思考。
python我是小白,不知道怎么去实现。但工具始终是工具,更重要的是思维。所以第二题……我实在无法用python来做了。希望在后面的课程可以掌握更多的知识,能更自由的运用。
网友评论
另外我从时间维度上观察你,你是个夜猫子,我说对了没?