使用Points(x,y)进行Python 2D数组访问

时间:2011-03-27 15:05:29

标签: python

晚安伴侣,

我是python编程的新手,我只是想知道你是否可以使用Points / Coordinate在python中访问2D数组?

示例您有一个观点: =(1,2)

并且您有一个矩阵,然后使用坐标

访问矩阵的某个部分

矩阵[] = 此处的示例值

谢谢,

文森特

4 个答案:

答案 0 :(得分:7)

流行的NumPy package提供了支持元组索引的多维数组:

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()调用中所使用的那样。

答案 1 :(得分:6)

你可以定义一个N×M矩阵并按如下方式访问它:

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

答案 2 :(得分:3)

在Python中,可以使用嵌套列表数据结构创建和引用2D矩阵。
但是,矩阵代数坐标系是(列,行);
使用嵌套列表创建(行,列)坐标系

要在Python中定义2D矩阵,请使用"嵌套列表" aka"列表列表"数据结构。
请注意 Python"列表" datastructure 对应于 Java"数组"数据结构即可。

引用坐标(列,行)的矩阵值:

coordinate_value = matrix[row][column]


就像1D列表一样,索引从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矩阵的快捷方式。

干杯!

答案 3 :(得分:1)

这里的部分问题是你正在尝试使用2d数组而python实际上根本不支持数组,而是使用列表来创建你想看的内容

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