【发布时间】:2021-10-08 08:51:31
【问题描述】:
我有一个视频序列,保存在 3 维 numpy 数组中。
import numpy as np
noise_50 = np.ones((422, 480, 640), dtype=np.float)
我想删除帧 0:25、231:272、372:421 并保留帧 26:231 和 273:371。
是否可以在一个操作中处理slice 对象?
我见过Python: shorter syntax for slices with gaps? 的问题,但它只考虑一维数组。
如果我按照那里的建议从索引技巧中尝试s_,它会将第二个切片广播到下一个轴并裁剪帧
retain = np.s_[26:230, 273:371]
n_50 = noise_50[retain]
n_50.shape
>>> (204, 98, 640)
^^^ ^^ - should be 303, 480
我也无法创建切片的总和
retain = slice(26, 230) + slice(273, 371)
> TypeError: unsupported operand type(s) for +: 'slice' and 'slice'
【问题讨论】:
-
这能回答你的问题吗? Python: shorter syntax for slices with gaps?
-
不完全。我昨天看到了这个问题。它是关于一维数组。
标签: python numpy-slicing