【发布时间】:2012-04-20 22:36:06
【问题描述】:
当多个数组的长度可能不同时,是否可以计算它们的平均值?我正在使用 numpy。所以假设我有:
numpy.array([[1, 2, 3, 4, 8], [3, 4, 5, 6, 0]])
numpy.array([[5, 6, 7, 8, 7, 8], [7, 8, 9, 10, 11, 12]])
numpy.array([[1, 2, 3, 4], [5, 6, 7, 8]])
现在我想计算平均值,但忽略“缺失”的元素(当然,我不能只附加零,因为这会弄乱平均值)
有没有办法在不遍历数组的情况下做到这一点?
PS。这些数组都是二维的,但该数组的坐标数量总是相同的。 IE。第一个数组是 5 和 5,第二个是 6 和 6,第三个是 4 和 4。
一个例子:
np.array([[1, 2], [3, 4]])
np.array([[1, 2, 3], [3, 4, 5]])
np.array([[7], [8]])
这必须给
(1+1+7)/3 (2+2)/2 3/1
(3+3+8)/3 (4+4)/2 5/1
并以图形方式:
[1, 2] [1, 2, 3] [7]
[3, 4] [3, 4, 5] [8]
现在想象一下,这些二维数组被放置在彼此的顶部,坐标重叠导致该坐标的平均值。
【问题讨论】:
-
mean()有什么问题?我不确定我是否了解您想要什么,或者mean()没有为您做什么。 -
“忽略丢失的元素”仍然很模糊。您能否举一个非常简单的示例,其中包含数据以及您希望为该数据生成的值?
-
你的问题不是很清楚。您能否说明您打算如何计算平均值以及您的预期结果是什么?
-
如果数组长度不同,mean() 似乎不起作用
-
我添加了一个例子来说明我的意思,我希望它可以帮助@Nolen