【发布时间】:2018-07-30 01:07:09
【问题描述】:
所以我现在有大约 300 个矩阵,这还不错,但我想让我的代码在未来可重用,所以我想知道是否有更有效的方法来找到平均值。我拥有的矩阵是 88x88,我想要平均它的方式是在最后得到一个矩阵,其中每个 [i][j] 值是另一个中所有 [i][j] 值的平均值300 个矩阵。
mean = []
smaller = []
for j in range(88):
for i in range(88):
for k in range(len(listof_matrices)):
smaller.append(listof_matrices[k][i][j])
mean.append(str(float(sum(smaller))/float(len(smaller))))
基本上,代码的工作方式是 3 个嵌套循环(我知道...),它首先在所有 k 个矩阵中附加单个 [i][j] 位置的值,找到平均值,然后将其添加到平均值list 存储它,并为所有 i 和所有 j 再次执行此操作。肯定有更快的方法。干杯
【问题讨论】:
-
numpy 是你的朋友。
np.mean(listof_matrices, axis=0) -
@Julien 即使我的矩阵不是 numpy 数组而只是普通列表,它也能工作吗?还是应该将它们全部转换为 numpy 数组?
-
在大多数情况下,numpy 会自动为您转换。
标签: python python-2.7 matrix