为了账号安全,请及时绑定邮箱和手机立即绑定

计算 numpy 数组列表

计算 numpy 数组列表

ITMISS 2021-11-30 16:19:59
我正在尝试对包含 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]
查看完整描述

3 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

如果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.mean


timeit(lambda: np.mean(L, axis=0))

# 13.708808058872819

timeit(lambda: sum(L) / len(L))

# 3.4780975924804807


查看完整回答
反对 回复 2021-11-30
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

给定一个 1d array anp.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


查看完整回答
反对 回复 2021-11-30
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

您可以使用 map


import numpy as np


my_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因为它会影响内置函数


查看完整回答
反对 回复 2021-11-30
  • 3 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信