我想通过迭代5个不同的矩阵来生成结果矩阵,首先我想获取所有矩阵的第一个值并取这些值的平均值,并将结果作为结果矩阵的第一个值附加。任何人都可以使用numpy库告诉如何在python中执行此操作??
答案 0 :(得分:0)
一般来说,你想避免(可能慢)基于python的循环,让numpy做(更快)基于c的循环(或根本没有循环)。
大多数人会将删除显式循环的方法称为(numpy-)向量化,这对于性能来说通常非常重要。
以下示例创建了5个大小为import numpy as np
a, b, c, d, e = [np.random.randint(0, 5, size=(3,3)) for i in range(5)]
all = np.stack((a, b, c, d, e), axis=0)
print(all.shape)
x = np.mean(all, axis=0)
print(a)
print(b)
print(c)
print(d)
print(e)
print(x)
的numpy-arrays(矩阵类型,也存在,有点不推荐使用,此处未使用,大多数numpy用户应使用数组作为矩阵的替换)和计算一个包含所有具有相同形状的平均值的新矩阵(矩阵单元格上的元素均值;我们将二维数组解释为矩阵)。
代码:
(5, 3, 3)
[[0 0 0]
[0 1 0]
[2 4 0]]
[[4 2 0]
[3 3 4]
[0 4 0]]
[[3 4 0]
[2 2 1]
[0 0 4]]
[[3 1 2]
[4 3 4]
[2 0 3]]
[[3 4 2]
[3 1 0]
[1 0 0]]
[[ 2.6 2.2 0.8]
[ 2.4 2. 1.8]
[ 1. 1.6 1.4]]
输出:
for row in range(array.shape[0]):
for col in range(array.shape[1]):
cell_value = array[row, col]
...
如果您仍想循环,可以使用嵌套循环,如:
{{1}}
给出2维数组。