簡體   English   中英

使用點 (x,y) 訪問 Python 2D 數組

[英]Python 2D Array access with Points (x,y)

我是 python 編程的新手,我只是想知道你是否可以使用點/坐標在 python 中訪問二維數組?

例如你有一個點: point = (1,2)

你有一個矩陣,然后你使用坐標訪問矩陣的某個部分

Matrix[ point ] =此處的樣本值

流行的NumPy 包提供了支持按元組索引的多維數組:

import numpy
a = numpy.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
print a[1, 2]
point = (1, 2)
print a[point]

沒有任何外部庫,Python 中就沒有“二維數組”這樣的東西。 只有嵌套列表,如上面對numpy.array()的調用所使用。

在 Python 中,可以使用嵌套列表數據結構創建和引用 2D 矩陣。
但是,在矩陣代數坐標系中是 (column, row) ;
使用嵌套列表時會創建一個 (row, column) 坐標系

要在 Python 中定義 2D 矩陣,請使用“嵌套列表”又名“列表列表”數據結構。
請注意, Python“列表”數據結構對應於Java“數組”數據結構

要在坐標(列、行)處引用矩陣值:

coordinate_value = matrix[row][column]


就像一維列表一樣,索引從 0...n 開始

matrix = [
              ['a', 'b', 'c'],
              ['d', 'e', 'f', 'g'],
              ['h', 'i', 'j', 'k'],
          ]
print "value of row 0, column 2: " + matrix[0][2]
"the value of row 0, column 2 is: c"

用例

如果你打算做大量的矩陣代數(特征向量、線性代數、矩陣變換等)——投資學習 numpy 模塊。
如果您正在進行編碼面試——嵌套列表是創建和使用 2D 矩陣的快捷方式。

干杯!

您可以通過 M 矩陣定義 N 並像這樣訪問它:

N = M = 5
Matrix = {(x,y):0 for x in range(N) for y in range(M)}
point1 = (1, 2)
Matrix[point1] = 2
print( Matrix[(3, 2)] ) # prints 0

這里的部分問題是您正在嘗試使用二維數組,而 python 實際上根本不支持數組,而是使用列表來創建您想要查看的內容

http://www.stev.org/post/2012/02/22/Python-2d-Arrays-dont-work.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM