NumPy模块中的向量和矩阵

wkyowqbh  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(143)

在Python中,如何编写程序来创建两个4 * 4的矩阵A和B,其元素是随机数。然后创建一个矩阵C,看起来像

C = ⎡A B⎤
    ⎣B A⎦

求矩阵C的对角线。对角线元素将以4 * 2矩阵表示。

import numpy as np

matrix_A = np.random.randint(10, size=(4, 4))
matrix_B = np.random.randint(10, size=(4, 4))

matrix_C = np.array([[matrix_A, matrix_B], [matrix_B, matrix_A]])
d= matrix_C.diagonal()
D=d.reshape(2,4)
print(f'This is matrix C:\n{matrix_C}')
print(f'These are the diagonals of Matrix C:\n{D}')
q3aa0525

q3aa05251#

施工

matrix_C = np.array([[matrix_A, matrix_B], [matrix_B, matrix_A]])

不连接矩阵,但创建4阶Tensor(将矩阵放入矩阵中)。您可以通过以下方式检查

print(matrix_C.shape)  # (2, 2, 4, 4)

要对块进行布局,请调用np.block,然后代码的所有其他部分都应该可以正常工作:

matrix_C = np.block([[matrix_A, matrix_B], [matrix_B, matrix_A]])
print(matrix_C.shape)  # (8, 8)
d= matrix_C.diagonal()
D=d.reshape(2,4)  # np.array([matrix_A.diagonal(), matrix_A.diagonal()])

相关问题