小白上路挣扎指南:
- 安装anaconda,详见简书余欣博士文章 ,安装过程中涉及的如在哪输入命令行等问题,还可参阅唐瑟同学的这篇入门分享。
- 安装Jupyter notebook,详见简书余欣博士文章,关于安装了Python 2环境后,如何在Jupyter notebook中实现的问题,参考这篇文章,如1中所述安装好py2环境后,
activate py2
,之后输入conda install notebook ipykernel
,进一步选y,最后ipython kernel install --user
,即可在jupyter notebook中选择py2的环境了。 - 启动Jupyter notebook
- 加载Python包
import pandas as pd #导入pandas包,命名为pd。
import numpy as np #导入numpy,命名为np。
import matplotlib.pyplot as plt #导入matplotlib.pyplot,命名为plt。
from scipy import stats #从scipy导入stats
- 导入数据
weight_data = pd.read_table('weight.txt') #用pd读取文件,命名为weight_data
weight_data.shape # 展示DataFrame的维度
- 数据处理
weight_data['weight'].mean() #求均值
weight_data['weight'].var() #求方差
- 数据可视化
fig = plt.figure() #创造画布fig
plt.rcParams["font.family"] = "SimHei" #修改默认字体,以正确显示中文(参考自小密圈中@木子 同学的分享)
x = weight_data['weight'] #以x代表weight_data表中weight栏
ax = fig.add_subplot(111) #将分为1*1的画布上自左向右自上向下第1格画图命名为ax,若改为234,即将画布分为2*3的格子,在第4格子填入ax
numBins = 10 #柱的数目(最终将生成此数+1的edge),此处亦可输入[0,40,50,90],定制尺度的分布
ax.hist(x,numBins,color='blue',alpha=0.2) #alpha是透明度设置
plt.title(u'体重直方图') #设置绘图标题
plt.show() #展示图
结果展示:
数据特征:众数落在40~50,小于平均值50.7,是右偏的。体重较高的会和大多数众数差得比较远。
附加:读取csv文件
数据特征:依然是一个右偏分布,极大值偏离很远,这对航空运力是很大的挑战,峰值管理并不好做,运力峰值和日常运力的协调应该会比较难。
包的介绍
pandas,全称Python Data Analysis Librarylist,是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。
NumPy,全称Numeric Python,是Python的一种开源的数值计算扩展。可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效,因array只能由存储相同的数据类型,利用内存更高效。同时numpy跟C/C++和Fortran代码的工具包可通融。numpy和稀疏矩阵运算包scipy配合更佳方便。
Matplotlib是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。可以方便地生成绘图,直方图,功率谱,条形图,错误图,散点图等。matplotlib的pyplot子库提供了和matlab类似的绘图API,方便用户快速绘制2D图表。matplotlib.pyplot是命令行式函数的集合,每一个函数都对图像作了修改,比如创建图形,在图像上创建画图区域,在画图区域上画线,在线上标注等。
SciPy函数库在NumPy库的基础上增加了众多的数学、科学以及工程计算中常用的库函数。例如线性代数、常微分方程数值求解、信号处理、图像处理、稀疏矩阵等等。
help()和dir()
method的查询,比如dir(list),会把list的所有方法列出,help(list.append)可以查看具体的。设a=abc.def,则help(a)亦可查询帮助。
导入包的情况,若查询类型是pandas.core.frame.DataFrame,但已经导入为pd,则help文件使用时也需在type部分写为pd,如help(pd.core.frame.DataFrame.shape),或者可以直接在浏览器搜索panda shape也可。
import和from import
import xx导入模块对于模块中的函数,每次调用需要“模块.函数”来用。
from xx import fun 直接导入模块中某函数,直接fun()就可用。