2016-06-16 17 views
0

以下はPythonで可能でしたか?Pythonでスライスを配列するための参照関数

(私は、適切な検索用語がどうなるか確認してください、のpythonにはかなり新しいものではありませんよ)

私は大きなnumpyの配列を操作する店やクラスを持っています。 今、私はここで、別名「参照関数」

を経由して、この配列の部分にアクセスしたいと思いますが、私はこれは私が書かなければならないということである程度好きではない何イラスト

import numpy as np 
class Trajectory(object): 
    def __init__(self,M=np.random.random((4,4))): 
     self.M=M 

    def get_second_row(self): 
     return self.M[1,:] 

    def set_second_row(self,newData): 
     self.M[1,:]=newData 

t=Trajectory() 
print t.M 
initialData=t.get_second_row() 
t.set_second_row(np.random.random(4)) 
print t.M 

ためのダミー例です別のセットと関数を取得します。値を取得したり設定したりするために働く配列Mの部分を参照する関数を1つだけ使用する簡単な方法はありますか?

ので、ダミーのコードで私はこれを行うことができるようになる何かを話す:

values=t.nth_row 
t.nth_row=values+1 
私は両方取得し、それが意味

を作る場合には、値を設定するための基準としてt.nth_row使用したい

+0

'def get_nth_row(self、n):self.M [n + 1、:]'? – Hamms

+0

補足では、get関数に 'return'がありません –

+0

@Hamms、私は行を取得して行を設定できる関数が必要であることをより明確に指定するために私の例を拡張しました。 – jlarsch

答えて

0

は、値を取得して値を設定するために動作する配列Mの部分を参照するための関数を1つだけ使用する簡単な方法はありますか?

はい、あなたはそれを書いています。それはあなたのget関数です:

initialData=t.get_second_row() 
t.get_second_row()[:] = np.random.random(4) 
t.get_second_row()[0] = 1997 
+0

私は困惑しています。クールと感謝! – jlarsch

+0

あなたは私にちょうどキーワードを与えることができます - これの背後にある原則は何ですか? – jlarsch

+0

オブジェクトバイパス参照 – Hamms

関連する問題