- Python數據可視化之美:專業圖表繪制指南(全彩)
- 張杰
- 9字
- 2020-05-22 18:04:27
第2章 數據處理基礎
2.1 NumPy:數值運算
NumPy是Numerical Python的簡稱,是高性能計算和數據分析的基礎包。ndarray是NumPy的核心功能,其含義為n-dimensional array,即多維數組。數組與列表之間的主要區別為:數組是同類的,即數組的所有元素必須具有相同的類型;相反,列表可以包含任意類型的元素。使用NumPy的函數可以快速創建數組,遠比使用基本庫的函數節省運算時間。NumPy在使用前需要導入,約定俗成的導入方法為:

2.1.1 數組的創建
數組(ndarray)由實際數據和描述這些數據的元素組成,可以使用*.shape查看數組的形狀,使用*.dim查看數組的維數。而向量(vector)即一維數組,也是最常用的數組之一。通過NumPy的函數創建一維向量與二維數組常用的方法如表2-1-1所示。數組可由列表構造,也可以通過*.tolist方法轉換列表。
表2-1-1 數組array的創建

NumPy支持的數據類型有:bool(布爾)、int8(-128~127的整數)、int16、int32、int64、uint8(0~255的無符號整數)、uint16、uint32、uint64、float16(5位指數10位尾數的半精度浮點數)、float32、float64等。可以使用*.astype()函數實現對數組數據類型的轉換。
2.1.2 數組的索引與變換
Python數組的索引與切片使用中括號“[]”選定下標來實現,同時采用“:”分割起始位置與間隔,用“,”表示不同維度,用“…”表示遍歷剩下的維度(見表2-1-2)。使用reshape()函數可以構造一個3行2列的二維數組:

表2-1-2 數組的索引與變換

其中,NumPy的ravel()和flatten()函數所要實現的功能是一致的,都是將多維數組降為一維數組。兩者的區別在于返回拷貝(copy)還是返回視圖(view),numpy.flatten()返回一份拷貝,對拷貝所做的修改不會影響原始矩陣,而numpy.ravel()返回的是視圖,會影響原始矩陣。
數組的排序也尤為重要。NumPy提供了多種排序函數,比如sort(直接返回排序后的數組)、argsot(返回數組排序后的下標)、lexsort(根據鍵值的字典序排序)、msort(沿著第一個軸排序)、sort_complex(對復數按照先實后虛的順序排序)等。具體如表2-1-3所示。
表2-1-3 數組的排序

2.1.3 數組的組合
NumPy數組的組合可以分為:水平組合(hstack)、垂直組合(vstack)、深度組合(dstack)、列組合(colume_stack)、行組合(row_stack)等(見表2-1-4)。其中,水平組合就是把所有參加組合的數組拼接起來,各數組行數應該相等,對于二維數組,列組合和水平組合的效果相同。垂直組合就是把所有組合的數據追加在一起,各數組列數應該一樣,對于二維數組,行組合和垂直組合的效果一樣。
表2-1-4 數組的組合

2.1.4 數組的統計函數
有時候,我們需要對數組進行簡單的統計分析,包括數組的均值、中值、方差、標準差、最大值、最小值等。圖2-1-1所示為3種不同數據分布的統計直方圖分析:均值(紅色實線)、中值(藍色實線)、最大值(桔色圓圈)、最小值(綠色圓圈)。NumPy的簡單統計函數如表2-1-5所示。示例數據:ary=np.arange(6),則數組ary為array([0,1,2,3,4,5])。

圖2-1-1 不同數據分布的統計直方圖分析:均值、中值、最大值、最小值
表2-1-5 簡單統計函數

- Spring Boot 2實戰之旅
- Java程序設計與開發
- The DevOps 2.3 Toolkit
- 深入淺出Prometheus:原理、應用、源碼與拓展詳解
- Visual C++數字圖像模式識別技術詳解
- The React Workshop
- UML+OOPC嵌入式C語言開發精講
- Mastering Kali Linux for Web Penetration Testing
- TypeScript項目開發實戰
- Python忍者秘籍
- 軟件供應鏈安全:源代碼缺陷實例剖析
- Getting Started with Python
- ASP.NET求職寶典
- Oracle 12c從入門到精通(視頻教學超值版)
- Implementing Microsoft Dynamics NAV(Third Edition)