来自NumPy模块的向量和矩阵



在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}')

结构

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

不连接矩阵,而是创建四阶张量(将矩阵放入矩阵中)。你可以通过

检查
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()])

最新更新