首頁 > 軟體

Python建立二維陣列與初始化的實踐舉例

2022-12-11 14:01:36

一、Python用什麼表達二維陣列

嚴格意義上說,Python中並沒有陣列的概念,Python中表達一組資料有多種形式,例如list,tuple,set等資料結構都可以表達一組數,並且這組數也沒有C和C++中陣列的的同質限制,這些數可以是任何一種資料型別。

以list為例(list又叫列表),要想實現一個所謂的二維陣列(有行有列),可以使用巢狀list來實現。例如:要想實現一個如

的一個2行3列的二維陣列,可以使用如下巢狀list來表達:

L = [[1, 2, 3], [4, 5, 6]]

二、如何初始化一個二維陣列

在很多應用場景下,二維陣列的資料是從鍵盤或者其他什麼檔案中輸入的。這時就迫切需要初始化一個二維陣列,等待資料的錄入。

2.1 利用list自身進行構造

list自身的建構函式形式多種多樣。想構建一個二維陣列自然並非難事。

例如,想要構建一個m行n列的二維陣列。可以這樣初始化。

L = [[] * n] * m

展示結果如下:

如果想要給一個初始化的值,可以寫成:

L = [[0] * n] * m

則:

2.2 利用傳統的list的append方法,通過迭代構造

m = 2 #2行
n = 3 #3列
 
l = 0 #行從0開始
mat = [] # 定義一個二維陣列mat
while l < m:
    r = 0 #列從0開始
    line = [] #line儲存每一行資料
    while r < n:
        line.append(0) #裝載行資料
        r = r + 1
    mat.append(line) #按行裝載二維陣列
    l = l + 1
print(mat)

得到的結果依然為:

2.3利用numpy包構建二維陣列(矩陣)

可以使用numpy包來構建二維陣列,例如要構建一個m行n列的初始化為0二維陣列,可以編寫程式:

m = 3
n = 4
mat = np.zeros((m, n))
 
print(mat)

結果為:

類似的:

構建一個m行n列的初始化為0二維陣列

m = 3
n = 4
mat = np.ones((m, n))
 
print(mat)

 構建一個m行n列的初始化為0-1亂數的二維陣列:

m = 3
n = 4
mat = np.random.random((m, n))
 
print(mat)

 構建一個m行n列的初始化為1-11步長為2的二維陣列:

m = 2
n = 3
mat = np.arange(1, 12, 2).reshape(m, n)
 
print(mat)

結果是:

構建一個m行n列的空的二維陣列:

m = 2
n = 3
mat = np.empty((m, n))
 
print(mat)

但注意,結果並不為空,而是一些極小的浮點數,並沒有實際意義。

三、操作二維陣列

如果你用的是list,那麼操作二維陣列和其他語言沒什麼區別。也是通過方括號下標來獲取單個資料,也是通過for迴圈迭代來遍歷二維陣列。這裡不再贅述。

總結

到此這篇關於Python建立二維陣列與初始化的文章就介紹到這了,更多相關Python建立二維陣列與初始化內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com