python - 如何使用python从 block 中索引整个矩阵

标签 python matrix

我正在尝试在 python 中的 for 循环中迭代创建 block 矩阵。有没有一种方法可以使用简单索引,其中索引对应于矩阵索引而不是标量索引。例如,将以下内容想象为 block 矩阵中的两个 2x2 矩阵:

4 5 6 7
1 2 3 4

有没有办法对子矩阵进行索引:

block_matrix[0,0] = 
4 5
1 2

block_matrix[0,1] = 
6 7
3 4

我的最终目标是有一个 for 循环来堆叠这些。例如:

for i in range(3):
   for j in range(3):
      mat = single_matrix
      block_matrix[i,j] = mat

block_matrix =

matrix_1_1 matrix_1_2 matrix_1_3
matrix_2_1 matrix_2_2 matrix_2_3
matrix_3_1 matrix_3_2 matrix_3_3

最佳答案

使用 numpyslicing将是一种好方法。

import numpy as np
block_matrix = np.zeros((9,9))  # shape (9,9)
mat = np.reshape(np.arange(9), (3,3))  # shape (3,3)

for i in range(3):
   for j in range(3):
      block_matrix[i*3:i*3+3,j*3:j*3+3] = mat

# block_matrix = 
#         mat mat mat 
#         mat mat mat 
#         mat mat mat 

当然,我只是创建了一个形状为 (3,3) 的简单矩阵,并将其用于 block_matrix 的所有子部分,但我希望您能明白要点。

关于python - 如何使用python从 block 中索引整个矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58118451/

相关文章:

c++ - 为什么我的代码给我一个分段/核心转储错误?

matrix - 如何使用 Nicematrix 和 TikZ 在矩阵下绘制大括号来描述我的列?

algorithm - 逻辑矩阵如何有效地找到具有真值的行/列

python - Django 密码重置表单

python - 函数循环 True 或 False

c - 在处理并列情况的同时在矩阵中找到最大值 [在 C 中]

r - 在R中调整矩阵大小的函数

java - 如何将GTFS数据保存到sqlite数据库中

python - 对称一维数组 Python

python - 在包含字符串和整数的列表上使用 max()