计算 numpy 数组列表

我正在尝试对包含 numpy 数组的列表进行一些计算(平均值、总和等)。例如:

列表 = [数组([2, 3, 4]),数组([4, 4, 4]),数组([6, 5, 4])]

如何检索平均值(例如)?在类似列表[4,4,4]或类似 numpy 的数组中array([4,4,4])

在此先感谢您的帮助!


编辑:抱歉,我没有正确解释我的目标:我想获得数组的第 i 个索引的平均值。例如,对于索引 0 :

(2+4+6)/3 = 4

我不想要这个:

(2+3+4)/3 = 3

因此最终的结果将是

[4,4,4] / 而不是 [3,4,5]


ITMISS
浏览 185回答 3
3回答

哆啦的时光机

如果L是标量列表,则可以使用直接表达式来计算平均值:sum(L) / len(L)幸运的是,这在数组列表上没有改变:L = [np.array([2, 3, 4]), np.array([4, 4, 4]), np.array([6, 5, 4])]sum(L) / len(L)# array([4., 4., 4.])对于这个例子,这恰好比 numpy 函数快得多 np.meantimeit(lambda: np.mean(L, axis=0))# 13.708808058872819timeit(lambda: sum(L) / len(L))# 3.4780975924804807

Cats萌萌

给定一个 1d array a,np.mean(a)应该可以解决问题。如果您有一个 2d 数组并希望分别计算每个数组的均值,请指定np.mean(a, axis=1).有等价的函数np.sum,等等。https://docs.scipy.org/doc/numpy/reference/generated/numpy.mean.html https://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html

摇曳的蔷薇

您可以使用 mapimport numpy as npmy_list = [np.array([2, 3, 4]),np.array([4, 4, 4]),np.array([6, 5, 4])]np.mean(my_list,axis=0) #[4,4,4]注意:不要命名您的变量,list因为它会影响内置函数
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python