NumPy初了解——我的Python數(shù)據(jù)科學(xué)手閱讀筆記
什么是numpy
NumPy是使用Python進(jìn)行科學(xué)計(jì)算的基礎(chǔ)軟件包。除其他外,它包括:
功能強(qiáng)大的N維數(shù)組對象。精密廣播功能函數(shù)。集成 C/C+和Fortran 代碼的工具。強(qiáng)大的線性代數(shù)、傅立葉變換和隨機(jī)數(shù)功能。
Numpy中文網(wǎng):【https://www.numpy.org.cn/】
為什么要學(xué)numpy
在使用python進(jìn)行數(shù)據(jù)分析的時(shí)候,常常要面對不同類型的數(shù)據(jù)集,如文本,聲音片段,圖像數(shù)據(jù)集等。這些數(shù)據(jù)雖然存在明顯的異構(gòu)性,但是將所有數(shù)據(jù)簡單地看作 數(shù)字?jǐn)?shù)組非常有助于我們理解和處理數(shù)據(jù)。而numpy正是Python 中專門用來處理這些數(shù)值數(shù)組的工具
例如可以將圖像(尤其是數(shù)字圖像)簡單地看作二維數(shù)字?jǐn)?shù)組,這些數(shù)字?jǐn)?shù)組代表各區(qū) 域的像素值;聲音片段可以看作時(shí)間和強(qiáng)度的一維數(shù)組;文本也可以通過各種方式轉(zhuǎn)換成 數(shù)值表示,一種可能的轉(zhuǎn)換是用二進(jìn)制數(shù)表示特定單詞或單詞對出現(xiàn)的頻率。不管數(shù)據(jù)是 何種形式,第一步都是將這些數(shù)據(jù)轉(zhuǎn)換成數(shù)值數(shù)組形式的可分析數(shù)據(jù)
Numpy與python列表
在python中,列表是常用的數(shù)據(jù)結(jié)構(gòu)。與其它語言不同的是,python由于其語言特殊的動(dòng)態(tài)類型特性,所以可以很靈活的創(chuàng)建各種列表,甚至是異構(gòu)列表(列表中包含多個(gè)數(shù)據(jù)類型)。
當(dāng)然,擁有這種靈活性的同時(shí),python不那么高效。
在python中,列表中的每一 項(xiàng)必須包含各自的類型信息、引用計(jì)數(shù)和其他信息;也就是說,每一項(xiàng)都是一個(gè)完整的 Python 對象。來看一個(gè)特殊的例子,如果列表中的所有變量都是同一類型的,那么很多信 息都會(huì)顯得多余——將數(shù)據(jù)存儲在固定類型的數(shù)組中應(yīng)該會(huì)更高效。
而與靈活的列表不同,在numpy中固定類型的 NumPy 式數(shù)組缺乏這 種靈活性,但是能更有效地存儲和操作數(shù)據(jù)。

Numpy中的數(shù)據(jù)類型
由于numpy中只包含同一類型的值,所以我們要了解一下numpy中的數(shù)據(jù)類型,與python中為數(shù)不多的的數(shù)據(jù)類型不同,numpy包含了極多的數(shù)據(jù)類型
當(dāng)構(gòu)建一個(gè)數(shù)組時(shí),可以用一個(gè)字符串參 數(shù)來指定數(shù)據(jù)類型:
或者用相關(guān)的 NumPy 對象來指定:
