Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表的平均值计算为子列表_Python_Statistics - Fatal编程技术网

Python 将列表的平均值计算为子列表

Python 将列表的平均值计算为子列表,python,statistics,Python,Statistics,如果我有一个大的列表或numpy数组等,我需要将其拆分为子列表,我如何有效地计算整个列表的统计偏差(平均值、标准偏差等) 举个简单的例子,假设我有一个小列表: l = [2,1,4,1,2,1,3,2,1,5] >>> mean(l) 2.2000000000000002 但是,如果出于某种原因,我需要划分为子列表: l1 = [2,1,4,1] l2 = [2,1,3,2] l3 = [1,5] 当然,你不需要了解很多数学知识就知道这是不正确的: mean(l) = me

如果我有一个大的列表或numpy数组等,我需要将其拆分为子列表,我如何有效地计算整个列表的统计偏差(平均值、标准偏差等)

举个简单的例子,假设我有一个小列表:

l = [2,1,4,1,2,1,3,2,1,5]
>>> mean(l)
2.2000000000000002
但是,如果出于某种原因,我需要划分为子列表:

l1 = [2,1,4,1]
l2 = [2,1,3,2]
l3 = [1,5]
当然,你不需要了解很多数学知识就知道这是不正确的:

mean(l) = mean(mean(l1), mean(l2), mean(l3))
如果所有列表和每个列表的长度都相同,则这可能是正确的,但在本例中并非如此


这个问题的背景与这样一种情况有关,即您有一个非常大的数据集,无法放入内存,因此,您需要将其拆分为卡盘。

我假设您知道您拥有的数据点的数量,即len(l)?然后,您可以单独计算每个列表的总和(即Map reduce)或运行总和(即,如果您正在执行readline()),然后在最后除以len(l)?

通常,您需要为每个子集保留所谓的充分统计信息。对于平均值和标准偏差,充分的统计数据是数据的数量、它们的总和以及它们的平方和。给定每个子集的这3个量,您可以计算整个集合的平均值和标准偏差


足够的统计数据不一定比子集本身小。但是对于平均值和标准偏差,足够的统计数据只是几个数字。

您可以将数据存储在磁盘上,使用。您检查过熊猫吗?@user3570335,需要的不仅仅是一个简单的问题作为答案!!我看不到任何代码,我可以帮助你在这里。。。如果你发布代码。。。这将有助于理解issue@user3570335读两遍,这不是一个与代码相关的问题,这更多的是一个“概念”问题,当然我的问题中没有任何代码,只是因为我不知道如何实现它……唯一的“代码”这就是你在问题中看到的。我不确定这是否100%正确……你可能需要除以长度的总和,然后将每个子列表的总和添加到下一个子列表是的,这就是我说的。您可以(i)并行计算每个列表的总和,然后将所有这些总和相加,或者(ii)将每个列表总和添加到“运行”总和中的前一个列表总和。最后除以所有列表的元素总数。是的,谢谢,这是我的第一个想法,这就是我说的更“有效”的意思。如果可能的话。