Python:从矩阵中获取行和列的值

时间:2016-04-12 13:51:08

标签: python python-2.7 oop matrix

我正在学习如何编码,我不太明白一个类是如何工作的。如果我创建一个矩阵,例如:

class Matrix(object):

 def __init__(self,i,j,value):
  self.rows = i
  self.cols = j
  self.value = value

如果我有一个随机矩阵并希望连续选择最大值,我可以写:

for value in row

并且程序会知道我的意思是第i行中的值ij?

3 个答案:

答案 0 :(得分:1)

通常在python中Matrixes是二维数组。像:

matrix = [[11,12,13,14],[21,22,23,24],[31,32,33,34]]

//与

相同

会给你一个矩阵:

11 12 13 14 
21 22 23 24
31 32 33 34

所以你有一个数组存储行(外部数组)和每行一个数组。要访问例如位置(2,4)的值,即24你要做的

matrix[1][3]

matrix[1] = [21,22,23,24]matrix[1][3] = [21,22,23,24][3] = 24

要遍历矩阵(即二维数组),您可以这样做:

#iterate over the rows
for row in matrix:
    #max value
    max = max(row)
    print max
    #if you want to iterate over the elements in the row do:
    for element in row:
        print element

在您的示例中,您定义的Matrix类将使用3个参数进行初始化:ijvalue。你没有做得更多。有关您自己的矩阵类的示例,您可以查看here

答案 1 :(得分:0)

使用enumerate插入索引:

>>> for i, j in enumerate(["a","b","c"]):
...   print i, j
... 
0 a
1 b
2 c

在你的情况下:

# suppose m is an instance of class Matrix
for i, row in enumerate(m.value):
    for j, ele in enumerate(row):
        # find greatest and halt
        # i, j are the expected index
        yeild i, j

要从列表中查找最大元素,有多种方法,例如:Pythonic way to find maximum value and its index in a list?

但是,如果不需要自己编程,更聪明的方法是使用numpy.matrix

答案 2 :(得分:0)

for value in row

代码不会让你获得行中最大的价值。它将迭代(遍历)行中的每个项目(一旦定义了行的行)。您需要添加支票才能获得最大数量。