I am trying to relate the python/numpy indices of two arrays with different sizes, but I cannot pass index one from the small array to the large array through a subroutine.
For example, I have two numpy arrays: a1
and a2
. a1.shape = (240,33,258)
and a2.shape = (240,40,33,258)
. I am finding indices in a1 and relating these indices to a2
. ie., index1 = numpy.where(a > n)
. I can grab the data that I an interested in using
dat1 = a1[index]
dat2 = a2[index[0],:,index[1],index[2]]
with the resulting dat shapes as dat1.shape = (n)
and dat2.shape = (n, 40)
. To speed up the program, I want to pass the index through a subroutine, but I cannot pass [index[0],:,index[1],index[2]]
through a subroutine because I cannot pass the colon ':'.
I believe my solution would be to pass the numerical equivalent to ':' in the subroutine, but I have not found an answer.
Any help?
Thank you very much
You should be able to use slice(None)
to represent :
. As in
[index[0], slice(None), index[1], index[2]]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With