On Tue, Sep 27, 2022 at 10:58 AM Filippo Tagliacarne <
filippotagliaca...@gmail.com> wrote:

> Hello everyone,
>
> I hope this is the correct place to post this as this is my first
> (potential) contribution to numpy.
>

Hi Filippo, yes this is the correct place. Thanks for your proposal, and
for being patient when no one replied the first time around.


>
> I would like to implement a function numpy.shift which would work
> similarly to numpy.roll, with one key difference. After shifting an array
> by a value `shift`, the function fills the missing values with a
> `fill_value`
> For example shifting the following array by 1 along axis 1with fill_value
> of 0
>
> >>> arr = numpy.arange(10).reshape((2,5))
> >>> arr
> array([[0, 1, 2, 3, 4],
>            [5, 6, 7, 8, 9]])
> >>> numpy.shift(arr, 1, axis=1, fill_value=0)
>
> array([[0, 0, 1, 2, 3],
>            [0, 5, 6, 7, 8]])
>

This shift function is straightforward to implement on top of roll:

>>> x = np.roll(arr, 1)
>>> x[:, 0] = 0  # fill_value
>>> x
array([[0, 0, 1, 2, 3],
       [0, 5, 6, 7, 8]])

We prefer not to add new convenience functions like this to NumPy if they
can be implemented in a couple of lines of code. There are a huge amount of
such functions possible; it's better to implement those in the downstream
library or end user code where it is needed.

Cheers,
Ralf
_______________________________________________
NumPy-Discussion mailing list -- numpy-discussion@python.org
To unsubscribe send an email to numpy-discussion-le...@python.org
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: arch...@mail-archive.com

Reply via email to