I have a 3d numpy array, eg:
>>> A = np.arange(24).reshape(2,3,4)
I want to take a 1d slice along axis 0 based on a pair of coordinates for axes 1 and 2:
>>> h = 1
>>> l = 2
>>> A[:,h,l]
array([ 6, 18])
So far so good. But what if my coordinate pair is stored as a tuple or a list, rather than two integers? I've experimented with a few obvious options, to no avail:
>>> coords = (1,2)
>>> A[coords]
array([20, 21, 22, 23])
>>> A[:,coords]
array([[[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[16, 17, 18, 19],
[20, 21, 22, 23]]])
>>> A[...,coords]
array([[[ 1, 2],
[ 5, 6],
[ 9, 10]],
[[13, 14],
[17, 18],
[21, 22]]])
I've googled around on this and not found anything, but it's entirely possible that I'm not searching with the appropriate jargon. So, apologies if this is an overly simplistic question!
h, l = coords. (Note thatcoordscould be two-dimensional, in this case.) Or am I misunderstanding the question?