Python中列表属性的平均值

时间:2018-04-15 22:51:32

标签: python numpy

我有一个对象列表,其中包含一个属性(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首选),你建议?

1 个答案:

答案 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