2016-06-16 3 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, которые будут работать как для получения, так и для установки значений?

так выступая в фиктивной коде, то, что позволит мне сделать это:

values=t.nth_row 
t.nth_row=values+1 

Я хотел бы использовать t.nth_row в качестве эталона для обоих получения и установки значения, если это имеет смысл

+0

определение функции get_nth_row (самоощущение, п): self.M [п + 1,:] '? – Hamms

+0

На стороне примечания в вашей функции get отсутствует 'return' –

+0

@Hamms, я расширил свой пример, чтобы уточнить, что я хочу функцию, которая может как получить, так и установить строку. – jlarsch

ответ

0

Есть ли более простой способ использовать только одну функцию для ссылки на части массива M, которые будут работать как для получения, так и для установки значений?

Да, и вы его написали. Это ваша 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

Смежные вопросы