我尝试通过索引将列表中的所有元素相加并求平均值:
List<List<double>> data = [[1.0, 2.0, 3.0], [2.0, 3.0, 5.0], [8.0, 7.0, 2.0]]
结果应该是一个双精度数列表,每个双精度数相加,然后除以上述数据的总长度:
[11.0, 12.0, 10.0] // divide these by 3
[3.67, 4.0, 3.33] // should be the result
最好的方法是什么?这在我的flutter应用程序中花费了太长的时间(实际的数据列表包含60个列表,每个列表包含2000个double),是的,我还Assert每个列表的长度是相等的,并且不为空或具有意外的数据类型。
4条答案
按热度按时间8mmmxcuj1#
我真的不知道你需要什么样的速度。
试试这个方法,看看它是否适用于你的数据集。也许你的方法更快!
**重要提示:**无论如何,如果您要及时完成一项大型任务,您可以将
async
函数与Future
配合使用,以防止应用程序挂起,并且不会因为长时间等待而受到影响。这段代码应该会给予你你所期望的结果。
hfwmuf9z2#
我对矩阵NxM的贡献,我修改了您的数据,以获得更通用的解决方案:
结果:
有一个名为scidart的新包,它包含了一些有趣的函数,比如
transpose
,它试图从Python中模拟numpy
。sum()
,extension
是固定的,现在,对不起。结果:
jaxagkaj3#
对于列表的操作,你必须迭代它的项(for,map,forEach ...等等),这将花费时间(取决于列表的长度),所以我猜你必须做一些基准测试。
试试这个
8zzbczxx4#