如何从多维数组rand_5[1,2]中选取指定行列获取目标子矩阵?
多维数组切片实现方案
要从指定多维数组中提取目标子矩阵,直接通过索引定位+切片即可实现,以Python的NumPy为例:
- 第一步定位到目标4×5矩阵:通过
rand_5[1, 2]获取对应维度的子矩阵(数组形状(2,3,4,5)中,第2个维度取索引1,第3个维度取索引2)。 - 第二步提取指定行列:针对这个4×5矩阵,选取行索引
[2,3](对应原矩阵第3、4行)和列索引[0,1](对应原矩阵第1、2列),组合起来的切片代码如下:
import numpy as np # 假设rand_5是已定义的形状(2,3,4,5)的数组 target_matrix = rand_5[1, 2, [2, 3], [0, 1]]
如果需要确保返回的是标准二维矩阵结构(避免索引方式导致的维度异常),可以用np.ix_来构造行列索引:
target_matrix = rand_5[1, 2][np.ix_([2, 3], [0, 1])]
两种方式最终都会得到你需要的子矩阵:
[[9, 6], [3, 0]]
内容的提问来源于stack exchange,提问作者user17957342
相关产品推荐
相关产品推荐

