在切片上执行计算后如何创建新的ndarray

时间:2019-04-15 07:41:03

标签: python slice numpy-ndarray inequalities

我有一个4d numpy数组,我想对它的几个切片执行计算,然后创建一个包含所有值的新数组。主要问题是我对3个维度有固定的切片,但是对于第四轴,请问如何按第四轴的范围进行切片

1 个答案:

答案 0 :(得分:1)

尽管我认为这里已经有几个类似的问题(numpy 4d slice的38个结果),这是我尝试以直观的方式对此进行解释。 首先,我从Giphy下载了.gif,并将其转换为示例性的多维np.array();它的尺寸为200x200px,具有3个颜色通道和6帧,其形状为(6, 200, 200, 3)

enter image description here

在图的第一行中,我分别显示每个颜色通道,以及索引为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]: