[Numpy-discussion] How to get the shape of an array slice without doing it

josef.pktd at gmail.com josef.pktd at gmail.com
Fri Jan 29 13:16:41 EST 2010


On Fri, Jan 29, 2010 at 12:32 PM, David Huard <david.huard at gmail.com> wrote:
> On Fri, Jan 29, 2010 at 12:10 PM,  <josef.pktd at gmail.com> wrote:
>> On Fri, Jan 29, 2010 at 11:49 AM, David Huard <david.huard at gmail.com> wrote:
>>> Hi,
>>>
>>> I have a 4D "array" with a given shape, but the array is never
>>> actually created since it is large and distributed over multiple
>>> binary files. Typical usage would be to take slices across the 4D
>>> array.
>>>
>>> I'd like to know what the shape of the resulting array would be if I
>>> took a slice out of it.
>>> That is, let's say my 4D array is A, I'd like to know
>>>
>>> A[ndindex].shape
>>>
>>> without actually creating A.
>>>
>>> ndindex should support all numpy constructions (integer, boolean,
>>> array, slice, ...). I am guessing something already exists to do this,
>>> but I just can't put my finger on it.
>>
>> trying out some things, just because it's a puzzling question
>>
>>>>> indi= (slice(2,5), np.arange(2), np.arange(3)[:,None])
>>>>> np.broadcast(*indi).shape
>> (3, 2)
>>
>> I don't know if this is ok for all possible cases, (and there are some
>> confusing things with reordering axis, when slices and fancy indexing
>> is mixed)
>>
>
> Hi josef,
>
> Where then do you specify the shape of the A array ?  Maybe an example
> would be clearer:
>
> Let's say A's shape is (10, 1, 5, 20)
> and the index is [::2, ..., 0]
>
> A[::2, ..., 0] shape would be (5, 1, 5)
>
> The broadcast idea has potential, I'll toy with it.
>
> David

broadcast doesn't work as easily as I thought, the dimension to
broadcast to, would have to be the same as the original array. I just
struggled with something similar for my attempted rewrite for
stats.nanmedian, and I think it took me a day to get the axis right.

Maybe someone has a better idea.

Josef




>
>
>> Josef
>>
>>
>>
>>> Thanks.
>>>
>>> David
>>> _______________________________________________
>>> NumPy-Discussion mailing list
>>> NumPy-Discussion at scipy.org
>>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>



More information about the NumPy-Discussion mailing list