更新時間:2020年11月30日10時22分 來源:傳智教育 瀏覽次數(shù):
NumPy作為高性能科學計算和數(shù)據(jù)分析的基礎(chǔ)包,它是本書介紹的其它重要數(shù)據(jù)分析工具的基礎(chǔ),掌握NumPy的功能及其用法,將有助于后續(xù)其他數(shù)據(jù)分析工具的學習。
NumPy中最重要的一個特點就是其N維數(shù)組對象,即ndarray(別名array)對象,該對象具有矢量算術(shù)能力和復(fù)雜的廣播能力,可以執(zhí)行一些科學計算。不同于Python標準庫,ndarray對象擁有對高維數(shù)組的處理能力,這也是數(shù)值計算中缺一不可的重要特性。
ndarray對象中定義了一些重要的屬性,具體如表1所示。
ndarray對象的常用屬性
屬性 | 具體說明 |
---|---|
ndarray.ndim | 維度個數(shù),也就是數(shù)組軸的個數(shù),比如一維、二維、三維等 |
ndarray.shape | 數(shù)組的維度。這是一個整數(shù)的元組,表示每個維度上數(shù)組的大小。例如,一個n行和m列的數(shù)組,它的shape屬性為(n,m) |
ndarray.size | 數(shù)組元素的總個數(shù),等于shape屬性中元組元素的乘積 |
ndarray.dtype | 描述數(shù)組中元素類型的對象,既可以使用標準的Python類型創(chuàng)建或指定,也可以使用NumPy特有的數(shù)據(jù)類型來指定,比如numpy.int32、numpy.float64等 |
ndarray.itemsize | 數(shù)組中每個元素的字節(jié)大小。例如,元素類型為float64的數(shù)組有8(64/8)個字節(jié),這相當于ndarray.dtype.itemsize |
值得一提的是,ndarray對象中存儲元素的類型必須是相同的。
為了讓讀者更好地理解ndarray,接下來,通過一些示例來演示ndarray對象 的使用,具體代碼如下。
In [1]: import numpy as np # 導入NumPy工具包
In [2]: data = np.arange(12).reshape(3, 4) # 創(chuàng)建一個3行4列的數(shù)組
In [3]: data
Out[3]:
array([[ 0, 1, 2, 3],
? [ 4, 5, 6, 7],
? [ 8, 9, 10, 11]])
In [4]: type(data)
Out[4]: numpy.ndarray
In [5]: data.ndim # 數(shù)組維度的個數(shù),輸出結(jié)果2,表示二維數(shù)組
Out[5]: 2
In [6]: data.shape # 數(shù)組的維度,輸出結(jié)果(3,4),表示3行4列
Out[6]: (3, 4)
In [7]: data.size # 數(shù)組元素的個數(shù),輸出結(jié)果12,表示總共有12個元素
Out[7]: 12
In [8]: data.dtype # 數(shù)組元素的類型,輸出結(jié)果dtype('int64'),表示元素類型都是int64
Out[8]: dtype('int64')
上述示例中,第1行代碼使用import...as語句導入numpy庫,并將其取別名為np,表示后續(xù)會用np代替numpy執(zhí)行操作。
第2行代碼使用arange()和reshape()函數(shù),創(chuàng)建了一個3行4列的數(shù)組data。其中,arange()函數(shù)的功能類似于range(),只不過arange()函數(shù)生成的是一系列數(shù)字元素的數(shù)組;reshape()函數(shù)的功能是重組數(shù)組的行數(shù)、列數(shù)和維度。
第4行代碼使用type()函數(shù)查看了數(shù)組的類型,輸出結(jié)果為numpy.ndarray。
第5行代碼獲取了數(shù)組的維度個數(shù),返回結(jié)果為2,表示二維數(shù)組。
第6行代碼獲取了數(shù)組的維度,返回結(jié)果為(3,4),表示數(shù)組有3行4列。
第7行代碼獲取了數(shù)組中元素的總個數(shù),返回結(jié)果為12,表示數(shù)組中一共有12個元素。
第8行代碼獲取了元素的具體類型,返回結(jié)果為dtype('int64'),表示元素的類型為int64。
猜你喜歡: