2016-04-12 8 views
0

コード作成の方法を学んでいますが、クラスの実際の仕組みを理解できませんでした。Python:行列から行と列の値を取得する

class Matrix(object): 

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

私はランダムな行列を持ち、行の最大値を選択したい場合は、私は書くことができます:私は、例えば、マトリックス作成する場合

for value in row 

をし、プログラムは、私が意味を知っているだろうi行目の値ij?あなたのケースでは

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

:インデックスを補間する

+0

あなたはpythonクラスに苦しんでいる場合は、この質問をチェックアウト:http://stackoverflow.com/questions/6667201/how-to-define-two-dimensional -array-in-pythonそして、これは行列について少し話します。http://stackoverflow.com/questions/6667201/how-to-define-two-dimensional-array-in-python Udacityには、Pythonに関する良いスタートコースもあります。 –

+0

self.rowsは行のリスト(self.rows = ['dog'、 'cat'、hamster '])ですか、それともMatrixの行数を示す整数ですか? – user1245262

+0

これを確認してください:https://docs.python.org/2/tutorial/classeshtml – Fabiano

答えて

1

通常、Pythonでは、行列は2次元配列になります。同様:

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 

お持ちの行(外側の配列)と1つの配列を格納する配列各行について。例:あなたが行うことができます(つまり、あなたの2次元配列)、あなたの行列を反復処理するにはmatrix[1] = [21,22,23,24]matrix[1][3] = [21,22,23,24][3] = 24

として

matrix[1][3] 

を行うだろう24ある位置(2,4)の値:

#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 

例では、3つのパラメータ、つまりi,jおよびvalueで初期化されるMatrixクラスを定義しています。あなたはもっとやっていません。独自の行列クラスの例については、一見することができますhere

+0

これは間違いなくmaxを見つけることも索引を与えることもありません。 – knh170

0

使用enumerateしかしPythonic way to find maximum value and its index in a list?

# 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 

複数の方法は、例えば、あるリストから最大の要素を検索するには、より巧妙な方法は、自分でプログラミングする必要がなければnumpy.matrixを利用することです。

0

for value in row 

コードは、あなたの行で最大の値を取得することはありません。行の各項目を反復(実行)します(一度行を定義すると)。最大の番号を取得するには、小切手を追加する必要があります。

関連する問題