Python 數據分析(二):向量計算
上一節數據結構的操作演示可以點擊這個鏈接:曾革:Python 數據分析(一):常見數據結構的使用
本章節我們開始學習向量化計算。向量化計算是一種特殊的並行計算的方式,它可以在同一時間執行多次操作,通常是對不同的數據執行同樣的一個或一批指令,或者說把指令應用於一個數組/向量。
pandas 是以 Series 和 DataFrame 為基本運算對象,也就是說當數據為 Series 或者是 DataFrame 時,向量化計算會對其中的每一個元素分別進行處理,然後以 Series 或 DataFrame 的形式輸出。
等差數列的生成
我們用 numpy.arange(start, end, step) 來生成一個等差數列,其中參數 start 表示開始值,end 表示結束值,step 表示步長。
NumPy( Numerical Python ) 是高性能科學計算和分析的基礎包,它是很多高級工具的構建基礎,比如 pandas 就是基於 NumPy 構建。
如下所示,我們生存了一個步長為 2 的等差數列。
向量計算的四則運算
四則運算的規則是這樣的:相同位置的數據進行計算,結果保留在相同的位置,語法:S1 op S2 ,下面分別演示了加減乘除的運算:
函數計算
函數計算的規則:相同位置的數據進行函數的計算,函數返回結果保留在相同位置,語法:fun(x)。如下計算 r 的五次方,會把 r 中的每一個元素計算 5 次方。
比較大小:
矩陣運算:
平方後求和:
以上只是演示了 Series 的向量化運算,接下來我們再看看 DataFrame 的向量化運算,先隨機生成一個 DataFrame,
找出每一列的最小值,apply方法的第二個參數 axis 的默認值是 0 ,也即是按列進行遍歷:
axis = 1 時則按行進行遍歷。
判斷每一列是否都大於 0,默認參數 axis 為 0 ,表示對列進行遍歷 :
帶上 axis 參數的結果和上面是一樣的:
判斷每一列是否都大於 0 ,此時得加上 axis = 1:
編寫向量化計算的代碼應該儘可能避免顯示的 for 循環。
以上就是向量計算的內容,下一節會涉及數據的導入導出。
推薦閱讀:
※數據挖掘和網路爬蟲有什麼關聯區別?
※還在與數據表格鬥毆?這12個數據可視化工具正準備來解放你
※Community Preserving Network Embedding閱讀報告
※數據挖掘實戰1:利用LM神經網路演算法進行電力竊漏電用戶自動識別
※通俗易懂說數據挖掘十大經典演算法