У меня есть многомерный массив объектов, что-то вроде:Numpy массив атрибутов объекта
a = np.array([obj1,obj2,obj3])
объекты являются экземплярами класса, который имеет несколько атрибутов. Скажем, одна из них - это высоты, а одна из них - длина. Для того, чтобы получить соответствующий многомерный массив длины и высоты, что я делаю:
lengths = np.array([obj1.length,obj2.length,obj3.length])
heights = np.array([obj1.height,obj2.height,obj3.height])
Это начинает засорять мой код довольно много. Есть ли более эффективный способ сделать это? Например, у меня было что-то вроде
heights = a.height
в виду, но, очевидно, она не работает, потому что это массив из моих объектов и не мой объект. Но есть ли что-то подобное, что я могу сделать, это эффективно и питонично? Я пытался что-то вроде
for x in np.nditer(a,flags=['refs_ok']):
print x.length
, чтобы посмотреть, что будет происходить, но это не работает, потому что nditer возвращает кортеж каким-то образом.
Любые идеи?
Можете ли вы предоставить немного больше кода _exactly_, что вы делаете? Включите класс _minimal_, чтобы воспроизвести эту и обратную трассировку из полученной вами ошибки. – tacaswell
, и вы прочитали это: http://docs.scipy.org/doc/numpy/reference/arrays.nditer.html#arrays-nditer – tacaswell