gpt4 book ai didi

python - 使用 numpy 循环遍历不同数量的矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:02 26 4
gpt4 key购买 nike

以下是在固定数量的矩阵上演示的功能:

x = np.matrix('0.5')
y = np.matrix('0.5 0.5; 0.5 0.5')
z = np.matrix('0.75 0.25; 0.34 0.66')
output = []

for i in x.flat:
for j in y.flat:
for k in z.flat:
output.append(i * j * k)

我需要帮助在可变数量的矩阵上解决这个问题。我尝试过使用

reduce(np.dot, arr)

但这不是我想做的。

最佳答案

通过 A 保存输入矩阵列表,我们可以迭代地使用 np.outernp.outer 会自行展平输入,因此,我们不需要自己执行此操作,只需要最后的展平步骤。

因此,解决方案是 -

A = [x,y,z,w]
out = A[0]
for i in A[1:]:
out = np.outer(out, i)
out = out.ravel()

请注意,输出将是一个数组。如果需要作为矩阵,只需在末尾用 np.matrix() 包裹它即可。

4 矩阵的示例运行 -

In [38]: x = np.matrix('0.5')
...: y = np.matrix('0.15 0.25; 0.35 0.45')
...: z = np.matrix('0.75 0.25; 0.34 0.66')
...: w = np.matrix('0.45 0.15; 0.8 0.2')
...:
...: output = []
...: for i in x.flat:
...: for j in y.flat:
...: for k in z.flat:
...: for l in w.flat:
...: output.append(i * j * k * l)
...:

In [64]: A = [x,y,z,w]
...: out = A[0]
...: for i in A[1:]:
...: out = np.outer(out, i)
...: out = out.ravel()
...:

In [65]: np.allclose(output, out)
Out[65]: True

关于python - 使用 numpy 循环遍历不同数量的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46224559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com