【发布时间】:2021-03-28 23:04:26
【问题描述】:
我想概括以下内容以允许裁剪元素的数量w 可能为零:
a = np.arange(42).reshape(6, 7)
w = 1 # Number of elements to crop on each side.
print(a[w:-w, w:-w])
而且在此泛化到任意维度:
def crop(array, width):
width = np.broadcast_to(width, array.ndim)
return array[tuple(slice(w, -w) for w in width)]
问题是带有stop=0 的slice 不返回任何元素。
什么是最优雅的解决方案?有没有现成的库函数?
如果numpy.pad 允许裁剪负值,那就太好了,但显然它不允许。
【问题讨论】:
标签: numpy numpy-ndarray numpy-slicing