numpy必知必會——ndarray

簡介

ndarray顧名思義,是一個用來存儲多維數(shù)組的數(shù)據(jù)結(jié)構(gòu)。

底層ndarray構(gòu)造函數(shù)

現(xiàn)在,用ndarray創(chuàng)建一個(2, 3)二維數(shù)組,并命名為a??梢钥吹剑?code>a是一個數(shù)組,包含2個元素;每個元素分別又是一個數(shù)組,包含3個float。請注意,float元素的值是隨機的,因為沒有指定。

>>> a = np.ndarray(shape=(2, 3), dtype=float)
>>> a
array([[  6.91857857e-310,   6.91857857e-310,   4.78249221e-317],
       [  1.08552349e-316,   1.08552230e-316,   1.08552112e-316]])

接下來,我們可以用下標訪問數(shù)組a,取出子數(shù)組。數(shù)組a維數(shù)為2,子數(shù)組維數(shù)則為1。

>>> a[0]
array([  6.91857857e-310,   6.91857857e-310,   4.78249221e-317])
>>> a[1]
array([  1.08552349e-316,   1.08552230e-316,   1.08552112e-316])

第二維只包含2個元素,因此當(dāng)下標超出合法范圍時,訪問將報錯。請注意,錯誤類型為IndexError

>>> a[2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: index 2 is out of bounds for axis 0 with size 2

同樣地,通過下標可以訪問子數(shù)組的元素,即取出浮點數(shù)。

>>> a[0][0]
6.9185785704028074e-310

高層接口

ndarray基礎(chǔ)上,numpy提供了若干個高層構(gòu)造函數(shù),包括zeros、empty等。

現(xiàn)在,使用zeros創(chuàng)建一個(2, 3, 4)三維數(shù)組。注意到,所有的值都初始化為0,而不是一堆沒有意義的隨機數(shù)值。

>>> np.zeros((2, 3, 4))
array([[[ 0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.]],

       [[ 0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.]]])

內(nèi)存布局

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容