On Thu, Jul 12, 2012 at 3:38 PM, Chao YUE
<chaoyuejoy@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