[Numpy-discussion] use slicing as argument values?

Benjamin Root ben.root at ou.edu
Thu Jul 12 15:42:44 EDT 2012


On Thu, Jul 12, 2012 at 3:38 PM, Chao YUE <chaoyuejoy at gmail.com> wrote:

> Dear all,
>
> I want to create a function and I would like one of the arguments of the
> function to determine what slicing of numpy array I want to use.
> a simple example:
>
> a=np.arange(100).reshape(10,10)
>
> suppose I want to have a imaging function to show image of part of this
> data:
>
> def show_part_of_data(m,n):
>     plt.imshow(a[m,n])
>
> like I can give m=3:5, n=2:7, when I call function
> show_part_of_data(3:5,2:7), this means I try to do plt.imshow(a[3:5,2:7]).
> the above example doesn't work in reality. but it illustrates something
> similar that I desire, that is, I can specify what slicing of
> number array I want by giving values to function arguments.
>
> thanks a lot,
>
> Chao
>
>

What you want to do is create slice objects.

a[3:5]

is equivalent to

sl = slice(3, 5)
a[sl]


and

a[3:5, 5:14]

is equivalent to

sl = (slice(3, 5), slice(5, 14))
a[sl]

Furthermore, notation such as "::-1" is equivalent to slice(None, None, -1)

I hope this helps!
Ben Root
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20120712/fe62fd07/attachment.html>


More information about the NumPy-Discussion mailing list