小白上路掙扎指南:
- 安裝anaconda,詳見簡書余欣博士文章 ,安裝過程中涉及的如在哪輸入命令行等問題,還可參閱唐瑟同學的這篇入門分享。
- 安裝Jupyter notebook,詳見簡書余欣博士文章,關于安裝了Python 2環境后,如何在Jupyter notebook中實現的問題,參考這篇文章,如1中所述安裝好py2環境后,
activate py2
,之后輸入conda install notebook ipykernel
,進一步選y,最后ipython kernel install --user
,即可在jupyter notebook中選擇py2的環境了。Paste_Image.png - 啟動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()就可用。