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神經網路演算法進行電力竊漏電用戶自動識別
通俗易懂說數據挖掘十大經典演算法

TAG:Python | 數據分析 | 數據挖掘 |