我有一个Python对象列表,代表了几个类。这些类显然不同,但仍然具有一些共同的属性(每个对象的值都不同)。例如:
class Super1:
def __init__(self, value1, value2):
self.value1 = value1
self.value2 = value2
#Lot's of other stuff
class Sub1(Super1):
def __init__(self, value1, value2, value3):
Super1.__init__(self, value1, value2)
self.value3 = value3
#Lot's of stuff
class Sub2(Super1):
def __init__(self, value1, value2, value4):
Super1.__init__(self, value1, value2)
self.value4 = value4
#Lot's of stuff
objects = [Sub1(1.,2.,3.), Sub1(213.,2.,23.), Sub2(23.,10.,0.2), Sub1(3.,2.,12.)]
现在,为了方便和提高性能,我需要将所有这些值转换成NumPy数组。我知道可以像这样读取它们:
np.array([objects[ii].value1 for ii in range(4)])
但我还需要改变值,既可以在数组形式中,也可以在实例方法中单独进行更改。是否可能通过使用指针或其他方式动态地将对象属性和对应的数组值进行 链接?
而且,这里的对象不一定是列表。欢迎提出建议。
np.array([o.value1 for o in objects])
? - Benjamin Hodgson