我有一个对象列表,其中包含一个属性(attributions
),我希望将它们(按元素划分)放在一起。这样做的最佳方式是什么?
我在列表ExplanationObjects
中有对象(attr
),每个对象都有一个属性attributions
,我希望以元素方式将它们放在一起。例如,如果我有:
a.attribution=[[2,1],[4,6]]
和
b.attribution=[[4,3],[8,8]]
我想要
[[3,2],[6,7]]
现在,我正在使用
这样做(sum(a.attribution for a in attrs))/len(attrs)
这是最好的方法吗,还是有其他方法(numpy首选),你建议?
答案 0 :(得分:0)
如果将属性转换为numpy数组,则可以执行此操作。如果您在班级中将归因作为一个数组,这将看起来更整洁。我不知道你是否可以这样做,所以我的例子没有。
<myusername> <myusername> <myusername>
我做了几种不同的方式。您可以添加和除以2,也可以使用import numpy as np
class C:
def __init__(self, attribution):
self.attribution = attribution
a=C([[2,1],[4,6]])
b=C([[4,3],[8,8]])
print(a.attribution)
print(b.attribution)
a_array = np.array(a.attribution)
b_array = np.array(b.attribution)
print((a_array + b_array)/2)
print(np.mean([a_array, b_array], axis=0))
print((a_array + b_array)//2) # preserve int
。
输出
numpy.mean