【发布时间】:2020-07-31 09:53:13
【问题描述】:
我有一个裁剪方法,适用于 (N, M) 数组,我希望它适用于 (T, N, M) - 请参阅以下我尝试过但不起作用的方法(提示 - 无法获取 np.vectorize工作)
这是方法
def crop(image: np.ndarray) -> np.ndarray:
"""
Crop a single image
"""
image_cropped = image[~np.all(image == 0, axis=1)]
image_cropped = image_cropped[:, ~np.all(image_cropped == 0, axis=0)]
return image_cropped
我尝试了什么
-
np.vectorize(crop)(sequence_of_images)导致此错误:numpy.AxisError: axis 1 is out of bounds for array of dimension 0 -
np.apply_along_axis(crop, 0, sequence_of_images)导致此错误:numpy.AxisError: axis 1 is out of bounds for array of dimension 1
如何在不使用循环的情况下使其工作? (可以假设每张图片在时间维度上,裁剪后的大小都是一样的,虽然裁剪后的mask不一样)
【问题讨论】:
标签: python performance numpy vectorization