[Numpy-discussion] indexing of arbitrary axis and arbitrary slice?
Nathaniel Smith
njs at pobox.com
Sat Mar 16 12:49:13 EDT 2013
On 16 Mar 2013 16:41, "Chao YUE" <chaoyuejoy at gmail.com> wrote:
>
> Dear all,
>
> Is there some way to index the numpy array by specifying arbitrary axis
and arbitrary slice, while
> not knowing the actual shape of the data?
> For example, I have a 3-dim data, data.shape = (3,4,5)
> Is there a way to retrieve data[:,0,:] by using something like
np.retrieve_data(data,axis=2,slice=0),
> by this way you don't have to know the actual shape of the array.
> for for 4-dim data, np.retrieve_data(data,axis=2,slice=0) will actually
be data[:,0,:,:]
I don't know of anything quite like that, but it's easy to fake it:
def retrieve_data(a, ax, idx):
full_idx = [slice(None)] * a.ndim
full_idx[ax] = idx
return a[tuple(full_idx)]
Or for the specific case where you do know the axis in advance, you just
don't know how many trailing axes there are, use
a[:, :, 0, ...]
and the ... will expand to represent the appropriate number of :'s.
-n
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20130316/4bf7a2fc/attachment.html>
More information about the NumPy-Discussion
mailing list