教程|Python之Numpy ndarray 基本介紹 2
接上文《Python 之 Numpy ndarray 基本介紹 1》
知識點6. ndarray的資料型別
dtype(資料型別)是一個特殊的物件,它含有ndarray將一塊記憶體解釋為特定資料型別所需的資訊
dtype是NumPy靈活互動其它系統的源泉之一。多數情況下,它們直接對映到相應的機器表示,這使得“讀寫磁碟上的二進位制資料流”以及“整合低階語言程式碼(如C、Fortran)”等工作變得更加簡單。數值型dtype的命名方式相同:一個型別名(如float或int),後面跟一個用於表示各元素位長的數字。標準的雙精度浮點值(即Python中的float物件)需要佔用8位元組(即64位)。因此,該型別在NumPy中就記作float64。表4-2列出了NumPy所支援的全部資料型別。
記不住這些NumPy的dtype也沒關係,新手更是如此。通常只需要知道你所處理的資料的大致型別是浮點數、複數、整數、布林值、字串,還是普通的Python物件即可。當你需要控制資料在記憶體和磁碟中的儲存方式時(尤其是對大資料集),那就得了解如何控制儲存型別。
可以通過ndarray的astype方法明確地將一個數組從一個dtype轉換成另一個dtype:
整數被轉換成了浮點數。如果將浮點數轉換成整數,則小數部分將會被擷取刪除:
如果字串陣列表示的全是數字,也可以用astype將其轉換為數值形式:
注意:使用numpy.string_型別時,一定要小心,因為NumPy的字串資料是大小固定的,發生擷取時,不會發出警告。pandas提供了更多非數值資料的便利的處理方法。如果轉換過程因為某種原因而失敗了(比如某個不能被轉換為float64的字串),就會引發一個ValueError。
知識點7. Numpy陣列的運算
陣列很重要,因為它使你不用編寫迴圈即可對資料執行批量運算。NumPy使用者稱其為向量化(vectorization)。大小相等的陣列之間的任何算術運算都會將運算應用到元素級:
大小相同的陣列之間的比較會生成布林值陣列:
不同大小的陣列之間的運算叫做廣播(broadcasting)
教程|Jupyter Notebook初級教程——迷死人的基礎操作
教程|Jupyter Notebook基礎教程——快捷鍵的使用
教程|Python之Numpy ndarray 基本介紹 1
點選 閱讀原文 ,動手操作
— End —