溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Numpy 的ndarray對象是什么/怎么用

發(fā)布時間:2021-03-11 16:53:41 來源:億速云 閱讀:330 作者:TREX 欄目:開發(fā)技術

本篇內(nèi)容主要講解“Numpy 的ndarray對象是什么/怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Numpy 的ndarray對象是什么/怎么用”吧!

??numpy作為python科學計算的基礎模塊,支撐起了pandas、matplotlib等使用。其中,ndarray作為numpy的重要使用對象不得不研究理解一下。

??ndarray,存儲單一數(shù)據(jù)類型的多維數(shù)組結(jié)構(gòu),在內(nèi)存中連續(xù)存在,以行索引和列索引的方式標記數(shù)組中的每一個元素。采用預編譯好的C語言代碼,性能上的表現(xiàn)十分不錯。

1、ndarray的數(shù)據(jù)結(jié)構(gòu)

Numpy 的ndarray對象是什么/怎么用

2、ndarray的創(chuàng)建

numpy主要有以下幾種方式創(chuàng)建數(shù)組。除此之外,其他過程也可能產(chǎn)生數(shù)組,比如:cv2.imread讀取圖片,返回數(shù)組。

np.array() # 傳入類數(shù)組數(shù)據(jù)結(jié)構(gòu),list,tuple等,或者其他嵌套序列。返回的維度依據(jù)傳入的數(shù)據(jù)而定
np.linspace() # 根據(jù)給定的間距生成等差序列,指定元素數(shù)量,返回一維數(shù)組
np.arange()# 根據(jù)給定的間距生成等差序列,指定步長。返回一維數(shù)組
np.ones() # 根據(jù)傳入的shape,返回一個元素全是1的數(shù)組
np.zeros() # 根據(jù)傳入的shape,返回一個元素全是0的數(shù)組
np.full() # 根據(jù)傳入的shape和value,返回一個元素全是value的數(shù)組,比前面兩個靈活
np.empty() # 根據(jù)傳入的shape,返回一個元素全是隨機化而不是空值的數(shù)組
np.genfromtxt() # 從文本文件讀取生成一個數(shù)組

3、ndarray的抽象理解

先創(chuàng)建一個三個數(shù)組,一維、二維、三維。

arr1 = np.arange(3)
arr1
array([0, 1, 2])
---------------------------------------------------------
arr2 = np.arange(9).reshape(3,3)
arr2
array([[0, 1, 2],
    [3, 4, 5],
    [6, 7, 8]])
----------------------------------------------------------
arr3 = np.arange(27).reshape(3,3,3)
arr3
array([[[ 0, 1, 2],
    [ 3, 4, 5],
    [ 6, 7, 8]],

    [[ 9, 10, 11],
    [12, 13, 14],
    [15, 16, 17]],

    [[18, 19, 20],
    [21, 22, 23],
    [24, 25, 26]]])

在python中的arr結(jié)構(gòu)如上所示。我們將其形象化表示出來,如下圖。

一維數(shù)組只有一個維度,也叫rank,只有一個axis軸,axis=0。
二維數(shù)組有兩個維度,有兩個axis軸,axis=0和1。
三維數(shù)組有三個維度,有三個axis軸,axis=0、1、2。

Numpy 的ndarray對象是什么/怎么用

我們直接在三維上執(zhí)行索引操作,來理解ndarray的排布。

arr3[1,2,1]
輸出16

??索引[1,2,1]依次從高維到低維,從axis軸2到1到0,1指三維上的第2個元素,即上圖中間的數(shù)組,是一個二維數(shù)組。2指二維上的第3個元素,是一個一維數(shù)組。1值一維上的第2個元素。也可以試著從軸方向去理解索引的原理。
可以自己操作一下下面索引代碼,看看出結(jié)果。

arr3[3,3,2]

??不同維度的ndarray shape理解如下??梢酝ㄋ椎恼J為是從點帶面,再到塊。

Numpy 的ndarray對象是什么/怎么用

4、ndarray的操作

??主要有索引、切片、過濾等,后續(xù)細談。只要理解了ndarray,操作其實很簡單。

到此,相信大家對“Numpy 的ndarray對象是什么/怎么用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI