gpt4 book ai didi

Python 连接和堆叠多个矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 21:09:34 25 4
gpt4 key购买 nike

我想创建一个square matrix like this one其中其元素是方阵,可以是 B 方阵,也可以是负单位矩阵或零。我已经创建了 B 矩阵以及 -I,并且还创建了一个由零组成的 Z 矩阵。 B、I 和 Z 方阵具有相同的 n1*n1(或 n2 * n2)维度,并且最终矩阵我希望具有 n*n 维度,其中 n = n1 * n2

例如,如果 B、I 和 Z 是 4*4,则最终将是 16*16

我知道如何连接和堆叠矩阵,但我不知道如何更好地实现它,因为需要使下面的过程为 64!次。

for iter in range(64):
if iter == 0:
temp = B
temp = np.hstack((temp, I))
temp = np.hstack((temp, Z))
temp = np.hstack((temp, Z))
if iter == 1:
temp2 = I
temp2 = np.hstack((temp2, B))
temp2 = np.hstack((temp2, I))
temp2 = np.hstack((temp2, Z))
if iter == 2:
temp3 = Z
temp3 = np.hstack((temp3, I))
temp3 = np.hstack((temp3, B))
temp3 = np.hstack((temp3, I))
if iter == 3:
temp4 = Z
temp4 = np.hstack((temp4, Z))
temp4 = np.hstack((temp4, I))
temp4 = np.hstack((temp4, B))
.......
........
........

st1 = np.vstack((temp, temp2))
st2 = np.vstack((st1, temp3))
.......

我可以将 n*n 矩阵保存到数组元素中,然后连接或堆叠它们吗?

最佳答案

根据您处理的是 numpy 数组还是列表,您可以使用以下示例来附加数组:

import numpy as np
x = np.array([[11.1, 12.1, 13.1], [21.1, 22.1, 23.1]])
print(x.shape)
y = np.array([[11.2, 12.2],[21.2, 22.2]])
print(y.shape)
z = np.append(x,y, axis=1)
print(z.shape)
print(z)

请注意,正如 @user2699 所提到的,对于较大的数组大小 ( Fastest way to grow a numpy numeric array ),numpy 附加可能会变慢。

对于列表,您可以使用追加命令:

x = [1, 2, 3]
x.append([4, 5])
print (x) #

此示例取自:Difference between append vs. extend list methods in Python

关于Python 连接和堆叠多个矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55160366/

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