NumPy庫簡介
NumPy庫使用Python進行科學計算,尤其是數據分析時,所用到的一個基礎庫。它是大量Python數學和科學計算包的基礎,比如我們後面會講到的pandas庫就用到了NumPy。pandas庫專門用於數據分析,充分借鑑了Python標準庫NumPy的相關概念。而Python標準庫所提供的內置工具對數據分析方面的大多數計算來說都過於簡單而不夠用。
為了更好地理解和使用Python所有的科學計算包,尤其是Pands,需要先掌握Numpy庫的用法,這樣才能把pandas的用處發揮到極致。
NumPy庫的核心
整個NumPy庫的基礎是ndarray(即N維數組)對象。它是一種由同質元素組成的多維數組 ,元素數量是事先指定好的。同質指的是幾乎所有元素的類型和大小都相同。事實上,數據類型由另外一個叫做dtype的NumPy對象來指定;每個ndarray只有一種dtype類型。
數組的維數和元素數量由數組的型來確定,數組的型由N個正整數組成的元組來指定,元組的每個元素對應每一維的大小。數組的維統稱為軸,軸的數量被稱為秩。
Numpy數組的另一個特點是大小固定,也就是說,創建數組時一旦指定好大小,就不會再發生改變。這與Python的列表有所不同,列表的大小是可以改變的。
定義ndarray最簡單的方式是使用array( )函數,以python列表作為參數,列表的元素即是ndarray的元素。
檢查新創建的對象是否是ndarray很簡單,只需要把新聲明的變量傳遞給type( )函數即可。
調用變量的dtype屬性,即可獲知新建的ndarray屬於哪種數據類型。
我們剛建的這個數組只有一個軸,因而秩的數量為1,它的型為(3,1)。這些值的獲取方法如下:軸數量需要使用ndim屬性,數組長度使用size屬性,而數組的型要用shape屬性。
剛剛我們這個簡單異常簡單,因為它只有一維。但是數組很容易就能擴展成為多維。例如,可以定義一個2x2的二維數組:
這個數組有兩條軸,所以秩為2,每條軸的長度為2。
ndarray對象擁有另外一個叫做itemsize的重要屬性。它定義了數組中每個元素的長度為幾個字節。data屬性表示的是包含數組實際元素的緩衝區。該屬性至今用得不多,因為要獲取數組中的元素,使用接下來即將學到的索引方法即可。
創建數組
數組的創建方法有幾種,最常用的就是前面我們講的,使用array( )函數,參數為單層或嵌套列表。
除了列表,array( )函數還可以接收嵌套元組或元組列表作為參數。
此外,參數可以是由元組或列表組成的列表,其效果是完全相同的: