我正在尝试在嵌套列表中操作numpy数组。
我有一个嵌套列表,在每个内部列表中,有几个numpy数组。
a = [
[np.random.normal(0,1,[2,3]), np.random.normal(0,1,[4,5]), np.random.normal(0,1, [9, 10])],
[np.random.normal(0,1,[2,3]), np.random.normal(0,1,[4,5]), np.random.normal(0,1, [9, 10])],
[np.random.normal(0,1,[2,3]), np.random.normal(0,1,[4,5]), np.random.normal(0,1, [9, 10])]
]
我希望以元素方式计算每个列表中每个numpy数组的平均值,以获得一个新列表b
,其中元素是三个np.random.normal(0,1,[2,3])
的平均值,即三个np.random.normal(0,1,[4,5])
等
我最初的想法是写下一个for循环来获取相应的数组并计算它们的平均值然后添加到列表中。但是,当拥有大量此类数组或内部列表时,这可能会有点慢。
答案 0 :(得分:2)
我不确定这是否是你想要的,但这是一个潜在的解决方案:
epsilon
b = [np.mean(row, axis=0) for row in zip(*a)]
将嵌套列表重新排列为合理的格式,因此zip(*a)
是大小相同的数组列表,row
将在列表中获得元素方式。
你也可以将每一行变成一个numpy数组:
np.mean(row, axis=0)