盒馬迴應上線“隔日淨”洗衣服務:確有此事
numpy、scipy、pandas、matplotlib的讀書報告:
Numpy:
來儲存和處理大型矩陣,比Python自身的巢狀列表(nested list structure)結構要高效的多,本身是由C語言開發。這個是很基礎的擴充套件,其餘的擴充套件都是以此為基礎。資料結構為ndarray,一般有三種方式來建立。
Pandas:
基於NumPy 的一種工具,該工具是為了解決資料分析任務而建立的。Pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。最具有統計意味的工具包,某些方面優於R軟體。資料結構有一維的Series,二維的DataFrame(類似於Excel或者SQL中的表,如果深入學習,會發現Pandas和SQL相似的地方很多,例如merge函式),三維的Panel(Pan(el) + da(ta) + s,知道名字的由來了吧)。
學習Pandas你要掌握的是:
1.彙總和計算描述統計,處理缺失資料 ,層次化索引
2.清理、轉換、合併、重塑、GroupBy技術
3.日期和時間資料型別及工具(日期處理方便地飛起)
Matplotlib:
Python中最著名的繪圖系統,很多其他的繪圖例如seaborn(針對pandas繪圖而來)也是由其封裝而成。
繪製的圖形可以大致按照ggplot的顏色顯示,但是還是感覺很雞肋。但是matplotlib的複雜給其帶來了很強的定製性。其具有面向物件的方式及Pyplot的經典高層封裝。
需要掌握的是:
1.散點圖,折線圖,條形圖,直方圖,餅狀圖,箱形圖的繪製。
2.繪圖的三大系統:pyplot,pylab(不推薦),面向物件
3.座標軸的調整,新增文字註釋,區域填充,及特殊圖形patches的使用
4.金融的同學注意的是:可以直接呼叫Yahoo財經資料繪圖
Scipy:
方便、易於使用、專為科學和工程設計的Python工具包.它包括統計,優化,整合,線性代數模組,傅立葉變換,訊號和影象處理,常微分方程求解器等等。基本可以代替Matlab,但是使用的話和資料處理的關係不大,數學系,或者工程系相對用的多一些。
解決一些具體問題(Pandas)
import pandas as pda # 使用pandas生成資料 # Series代表某一串資料 index指定行索引名稱,Series索引預設從零開始 # DataFrame代表行列整合出來的資料框,columns 指定列名 a = pda.Series([8, 9, 2, 1], index=['one', 'two', 'three', 'four']) # 以列表的格式建立資料框 b = pda.DataFrame([[5,6,2,3],[3,5,1,4],[7,9,3,5]], columns=['one', 'two', 'three', 'four'],index=['one', 'two', 'three']) # 以字典的格式建立資料框 c = pda.DataFrame({ 'one':4, # 會自動補全 'two':[6,2,3], 'three':list(str(982)) }) # b.head(行數)# 預設取前5行頭 # b.tail(行數)# 預設取後5行尾 # b.describe() 統計資料的情況 count mean std min 25% max e = b.head() f = b.describe() # 資料的轉置,及行變成列,列變成行 g = b.T
Matplotlib影象處理
import matplotlib.pyplot as plt import numpy as np # 生成測試資料 x = np.linspace(-3, 3, 50) y1 = 2*x + 1 y2 = x**2 # 生成畫布 plt.figure(facecolor='grey') # figure()中的屬性 ''' **num=3** 畫出來圖的標題就是‘Figure 3’ 如果傳一個str,eg. num='折線圖' 圖的標題就是‘折線圖’ **figsize=(8, 4)** 指定繪圖物件的寬度和高度,單位為英寸,一英寸=80px **facecolor='blue'** 背景顏色,預設是白色 也可以以‘#+6位16進位制數’給出,eg. '#00ff00' **edgecolor='red'** 邊框顏色,預設是白色 ''' # 畫圖 plt.plot(x, y1, linestyle='--') plt.plot(x, y2) # plot的屬性 ''' **linewidth=3** 線條寬度 也可以寫作 lw=3 **markersize='20'** 線上標記的尺寸 注意要傳字串型別的值 **marker='2'** 線上的標記 ============= =============================== character description ============= =============================== ``'.'`` point marker ``','`` pixel marker ``'o'`` circle marker ``'v'`` triangle_down marker ``'^'`` triangle_up marker ``'<'`` triangle_left marker ``'>'`` triangle_right marker ``'1'`` tri_down marker ``'2'`` tri_up marker ``'3'`` tri_left marker ``'4'`` tri_right marker ``'s'`` square marker ``'p'`` pentagon marker ``'*'`` star marker ``'h'`` hexagon1 marker ``'H'`` hexagon2 marker ``'+'`` plus marker ``'x'`` x marker ``'D'`` diamond marker ``'d'`` thin_diamond marker ``'|'`` vline marker ``'_'`` hline marker ============= =============================== **linestyle=':'** 線的型別 ============= =============================== character description ============= =============================== ``'-'`` solid line style ``'--'`` dashed line style ``'-.'`` dash-dot line style ``':'`` dotted line style ============= =============================== 也可表示為linestyle='dashed' **colors='r'** The supported color abbreviations are the single letter codes ============= =============================== character color ============= =============================== ``'b'`` blue ``'g'`` green ``'r'`` red ``'c'`` cyan ``'m'`` magenta ``'y'`` yellow ``'k'`` black ``'w'`` white ============= =============================== 也可用'#ff0000'這種形式表示 ''' # 必須要有這一句畫圖才能顯示 plt.show()