[英]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.