许多基质的元素中位数,蟒蛇熊猫

时间:2014-10-20 15:33:56

标签: python dictionary matrix pandas median

我有一个矩阵字典。

字典叫做dict。

dict[location] 

返回该位置的方形n x n相关数据帧。

locations

是所有地点的列表。 (字典中的键)。

我想基本上在键盘的数据框中列出每个i,j组件的列表,并取所有这些组件的中位数。您可以将此视为将矩阵堆叠在彼此之上并获取每个i,j元素的中值。我希望我能够清楚地解释这一点。

我想知道是否有一种聪明的方法可以做到这一点。我想避免列出n(n + 1)/ 2个唯一的i,jth对,然后取中位数,然后将它们放回到最终中值矩阵(数据帧)中的适当位置。

1 个答案:

答案 0 :(得分:2)

这看起来效果很好而且效率很高。

numpy.median(dict.values(),axis=0)

通常,中位数需要内存中的所有数据,除非您只需要估算。因此,对于大量数据,您必须以块的形式工作:

numpy.median( [m[0:10,0:10], for m in dict.values()], axis=0)