您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Python numpy中的ndarray如何理解,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
numpy 模塊知識(shí):
numpy 模塊是一個(gè)開(kāi)源的第三方Python庫(kù),常用于科學(xué)和工程領(lǐng)域,是科學(xué)Python和PyData 生態(tài)系統(tǒng)的核心。
numpy 模塊易學(xué)易用的特點(diǎn),基本上覆蓋了初學(xué)者到先進(jìn)科學(xué)研究員的所有人群。
numpy 模塊除了在matplotlib上應(yīng)用,它還在Pandas
、Scipy
、scikit-learn
等科學(xué)Python中。
numpy 模塊也包含多維數(shù)組和矩陣數(shù)據(jù)結(jié)構(gòu),它專(zhuān)門(mén)提供了具有n維數(shù)組對(duì)象的ndarray
,以及對(duì)其進(jìn)行有效操作的方法。
numpy 模塊也可用于對(duì)數(shù)組執(zhí)行各種數(shù)學(xué)運(yùn)算,提供高級(jí)數(shù)學(xué)函數(shù)庫(kù),以及數(shù)組和矩陣的操作。
眾所周知,numpy 模塊中數(shù)組對(duì)象是其核心功能,下面我們重點(diǎn)來(lái)學(xué)習(xí)numpy 數(shù)組相關(guān)內(nèi)容。
數(shù)組是numpy 模塊核心數(shù)據(jù)結(jié)構(gòu)。數(shù)組是值的網(wǎng)絡(luò),它的內(nèi)部包含有原始數(shù)據(jù)、如何定義元素以及如何解釋元素的信息。我們可以使用各種方式索引元素網(wǎng)格。
ndarray 是 numpy 模塊中定義 n維數(shù)組類(lèi)型。ndarray 可以描述同種類(lèi)型project的集合。
同種數(shù)據(jù)類(lèi)型:numpy 數(shù)組中的所有元素都是同種類(lèi)類(lèi)型,如int32,float64等
同大小內(nèi)存空間:每個(gè)project占用相同大小內(nèi)存塊
同方式解釋?zhuān)好總€(gè)project由object數(shù)據(jù)類(lèi)型指定,,其中一個(gè)與每個(gè)數(shù)組相關(guān)聯(lián)
可以N個(gè)整數(shù)對(duì)project進(jìn)行索引
從數(shù)組中我們可以提取python對(duì)象表示的如索引是numpy 內(nèi)置數(shù)組標(biāo)量類(lèi)型之一,我們可以通過(guò)使用數(shù)組標(biāo)量來(lái)輕松操作復(fù)雜的數(shù)據(jù)排列。
通過(guò)以上ndarray 內(nèi)部結(jié)構(gòu),我們可以看到 ndarray
主要由 dtype
、shape
、stride
組成
ndarray 指向內(nèi)存映射地址的指針-data對(duì)象
ndarray 元素解釋形象-dtype對(duì)象
ndarray 每個(gè)維度的元素之間的間隔-strides對(duì)象(tuple)
ndarray 對(duì)每個(gè)維度的數(shù)量和大小的描述-shape對(duì)象(tuple)
以上四個(gè)python
對(duì)象就可以在ndarray 中通過(guò)索引的方式找到指定位置的數(shù)據(jù)。
同時(shí)我們也調(diào)用np.array().flags
獲取字節(jié)序、讀寫(xiě)權(quán)限等信息,可知ndarray
底層是C和Fortran 實(shí)現(xiàn)的。
C_CONTIGUOUS : True F_CONTIGUOUS : False OWNDATA : True WRITEABLE : True ALIGNED : True WRITEBACKIFCOPY : False UPDATEIFCOPY : False
我們通過(guò)numpy.array
方法創(chuàng)建一個(gè)2維數(shù)組
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
import numpy as np a = np.array([[1,2],[4,5],[7,8]]) print("dim:",a.ndim) print("strides:",a.strides) print("dtype:",a.dtype) print("data:",a.data) print("shape:",a.shape) print(a)
通過(guò)array
對(duì)象調(diào)用ndarray
標(biāo)量對(duì)象,可以獲知ndarray
維度大小、元素類(lèi)型、間隔等信息
通過(guò)上述圖,我們可以知道 ndarray 內(nèi)存主要?jiǎng)澐譃閮刹糠郑?/strong>
raw data: 計(jì)算機(jī)一段連續(xù)的block,存儲(chǔ)在C或者Fortran中的數(shù)組
metdata:有關(guān)原始數(shù)組數(shù)據(jù)的信息
ndarray
要求所有數(shù)據(jù)都是同種類(lèi)型的
每個(gè)數(shù)據(jù)占用空間一樣
數(shù)組中存儲(chǔ)的數(shù)據(jù)是一段連續(xù)的空間
可以容納不同數(shù)據(jù)類(lèi)型
list 中只存放對(duì)象的引用,再通過(guò)引用找到具體的對(duì)象
對(duì)象的物理地址并不是連續(xù)的
所以,綜上所述,ndarray
查找數(shù)據(jù)運(yùn)行效率比list快,同時(shí)ndarray
存儲(chǔ)的數(shù)據(jù)是連續(xù)的一段空間,對(duì)比list 對(duì)象物理地址分散的,ndarray 比 list 更省空間。
上述就是小編為大家分享的Python numpy中的ndarray如何理解了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。