Numpy是一個(gè)開(kāi)源的Python科學(xué)計(jì)算庫(kù),它是python科學(xué)計(jì)算庫(kù)的基礎(chǔ)庫(kù),許多其他著名的科學(xué)計(jì)算庫(kù)如Pandas,Scikit-learn等都要用到Numpy庫(kù)的一些功能。
本文主要內(nèi)容如下:
Numpy數(shù)組對(duì)象
創(chuàng)建ndarray數(shù)組
Numpy的數(shù)值類(lèi)型
ndarray數(shù)組的屬性
ndarray數(shù)組的切片和索引
處理數(shù)組形狀
數(shù)組的類(lèi)型轉(zhuǎn)換
numpy常用統(tǒng)計(jì)函數(shù)
數(shù)組的廣播
1 Numpy數(shù)組對(duì)象
Numpy中的多維數(shù)組稱(chēng)為ndarray,這是Numpy中最常見(jiàn)的數(shù)組對(duì)象。ndarray對(duì)象通常包含兩個(gè)部分:
ndarray數(shù)據(jù)本身
描述數(shù)據(jù)的元數(shù)據(jù)
Numpy數(shù)組的優(yōu)勢(shì)
Numpy數(shù)組通常是由相同種類(lèi)的元素組成的,即數(shù)組中的數(shù)據(jù)項(xiàng)的類(lèi)型一致。這樣有一個(gè)好處,由于知道數(shù)組元素的類(lèi)型相同,所以能快速確定存儲(chǔ)數(shù)據(jù)所需空間的大小。
Numpy數(shù)組能夠運(yùn)用向量化運(yùn)算來(lái)處理整個(gè)數(shù)組,速度較快;而Python的列表則通常需要借助循環(huán)語(yǔ)句遍歷列表,運(yùn)行效率相對(duì)來(lái)說(shuō)要差。
Numpy使用了優(yōu)化過(guò)的C API,運(yùn)算速度較快
關(guān)于向量化和標(biāo)量化運(yùn)算,對(duì)比下面的參考例子就可以看出差異
使用python的list進(jìn)行循環(huán)遍歷運(yùn)算
def pySum(): a = list(range(10000)) b = list(range(10000)) c = [] for i in range(len(a)): c.append(a[i]**2 + b[i]**2) return c
%timeit pySum()
10 loops, best of 3: 49.4 ms per loop
使用numpy進(jìn)行向量化運(yùn)算