It's definitely just "slicing", but it's a bit inconvenient.  I'm thinking
more like:

arr = np.random.rand(10, 10, 10)
W = [[3, 2], [4, 6]]  # or W = 4, or W = [4, 5]
arr_padded = np.pad(arr, pad_width=W)
< Do some stuff to arr_padded >
arr = np.unpad(arr_padded, pad_width=W)  # Using W just works, no matter
how odd the various pad widths were



On Mon, Apr 12, 2021 at 4:29 PM Stephan Hoyer <sho...@gmail.com> wrote:

> The easy way to unpad an array is by indexing with slices, e.g., x[20:-4]
> to undo a padding of [(20, 4)]. Just be careful about unpadding "zero"
> elements on the right hand side, because Python interprets an ending slice
> of zero differently -- you need to write something like x[20:] to undo
> padding by [(20, 0)].
>
>
> On Mon, Apr 12, 2021 at 1:15 PM Jeff Gostick <jgost...@gmail.com> wrote:
>
>> I often find myself padding an array to do some processing on it (i.e. to
>> avoid edge artifacts), then I need to remove the padding.  I wish there
>> was either a built in "unpad" function that accepted the same arguments as
>> "pad", or that "pad" accepted negative numbers (e.g [-20, -4] would undo a
>> padding of [20, 4]).  This seems like a pretty obvious feature to me so
>> maybe I've just missed something, but I have looked through all the open
>> and closed issues on github and don't see anything related to this.
>>
>>
>> Jeff G
>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion@python.org
>> https://mail.python.org/mailman/listinfo/numpy-discussion
>>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
>
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to