我有一个4d numpy数组,我想对它的几个切片执行计算,然后创建一个包含所有值的新数组。主要问题是我对3个维度有固定的切片,但是对于第四轴,请问如何按第四轴的范围进行切片
答案 0 :(得分:1)
尽管我认为这里已经有几个类似的问题(numpy 4d slice
的38个结果),这是我尝试以直观的方式对此进行解释。
首先,我从Giphy下载了.gif
,并将其转换为示例性的多维np.array()
;它的尺寸为200x200px,具有3个颜色通道和6帧,其形状为(6, 200, 200, 3)
。
在图的第一行中,我分别显示每个颜色通道,以及索引为1
的帧的总和(请注意,此处忽略了cmap
关键字)。
接下来,我创建绿色通道的特定切片(颜色索引1
),其在y方向上从50-150px,在x方向上从100-120px,如下所示:{{1} }-它的形状为my_slice= frames[frame_index,50:150,100:120,1]
。
我将其乘以0.1,然后将结果插入原始位置。
第二行图像现在显示了如何减少该区域的绿色通道,从而在整个图像中产生整体粉红色调。
如果您现在想在例如帧(100, 20)
,它变成一个简单的[0,4,5]
循环。
希望这会有所帮助。
for frame_index in [0,4,5]: