You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将6×6矩阵划分为4个小方阵?reshape函数使用遇阻

拆分6×6矩阵为4个3×3子矩阵的解决方案

针对你要将6×6矩阵拆分为4个3×3子矩阵的需求,直接使用reshape函数无法实现(因为reshape是按元素线性顺序重新排列,而非按区域分块),更合适的方式是利用数组切片来提取对应区域。以下是具体实现方案:

基于NumPy的实现(推荐)

import numpy as np

# 定义原始6×6矩阵
A = np.array([
    [1, 2, 3, 4, 5, 6],
    [7, 8, 9, 10, 11, 12],
    [13, 14, 15, 16, 17, 18],
    [19, 20, 21, 22, 23, 24],
    [25, 26, 27, 28, 29, 30],
    [31, 32, 33, 34, 35, 36]
])

# 提取四个3×3子矩阵
A1 = A[:3, :3]
A2 = A[:3, 3:]
A3 = A[3:, :3]
A4 = A[3:, 3:]

# 验证结果
print("A1:\n", A1)
print("\nA2:\n", A2)
print("\nA3:\n", A3)
print("\nA4:\n", A4)

切片逻辑说明

  • A[:3, :3]:取矩阵前3行、前3列,对应左上角的A1
  • A[:3, 3:]:取矩阵前3行、后3列,对应右上角的A2
  • A[3:, :3]:取矩阵后3行、前3列,对应左下角的A3
  • A[3:, 3:]:取矩阵后3行、后3列,对应右下角的A4

普通Python列表的实现

如果你的矩阵是原生Python列表而非NumPy数组,可通过列表推导实现切片:

# 普通列表形式的矩阵
A = [
    [1, 2, 3, 4, 5, 6],
    [7, 8, 9, 10, 11, 12],
    [13, 14, 15, 16, 17, 18],
    [19, 20, 21, 22, 23, 24],
    [25, 26, 27, 28, 29, 30],
    [31, 32, 33, 34, 35, 36]
]

A1 = [row[:3] for row in A[:3]]
A2 = [row[3:] for row in A[:3]]
A3 = [row[:3] for row in A[3:]]
A4 = [row[3:] for row in A[3:]]

内容的提问来源于stack exchange,提问作者Carlos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 03:20:29