如何对Numpy中的4维数组进行切片以提取指定目标数组?
解法说明
首先明确4维数组d1的4个轴索引从左到右依次为轴0、轴1、轴2、轴3,对应shape参数(2,2,2,4)的四个数值。
我们先定位两个目标行的位置:
- 第一行
[13 14]的位置:轴0取0(第一组大数组)、轴1取1(第二组中数组)、轴2取1(第二组小数组)、轴3取1到3(左闭右开,对应索引1、2的元素),单组索引写法为d1[0,1,1,1:3] - 第二行
[17 18]的位置:轴0取1(第二组大数组)、轴1取0(第一组中数组)、轴2取0(第一组小数组)、轴3取1到3,单组索引写法为d1[1,0,0,1:3]
要一次性得到组合后的二维数组,用numpy的整数数组索引即可,完整代码如下:
import numpy as np d = np.arange(32) d1 = d.reshape(2,2,2,4) result = d1[[0,1], [1,0], [1,0], 1:3] print(result)
运行输出结果完全符合需求:
[[13 14] [17 18]]
内容的提问来源于stack exchange,提问作者ImP1
相关产品推荐
相关产品推荐

