Example 1: 1d array
1 2 3 4 5 | import numpy as np a = np.array([ 1 , 2 , 3 , 4 , 5 , 6 ]) # idx: [2, 5) print (a[ 2 : 5 ]) # [3, 4, 5] |
Example 2: 2d array
1 2 3 4 5 6 7 8 9 10 11 | import numpy as np a = np.array([ [ 1 , 2 , 3 ], [ 2 , 3 , 2 ], [ 4 , 5 , 2 ] ]) start = [ 0 , 1 ] end = [ 1 , 2 ] print (a[start[ 0 ]:end[ 0 ], start[ 1 ]:end[ 1 ]]) |
Example 3: without knowing its dimensions
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | a = np.array([ [[ 1 , 0 , 2 ], [ 2 , 1 , 0 ], [ 5 , 6 , 3 ]], [[ 2 , 1 , 3 ], [ 3 , 2 , 1 ], [ 1 , 4 , 6 ]] ]) start = [ 0 , 0 , 1 ] end = [ 1 , 1 , 2 ] result1 = a[start[ 0 ]:end[ 0 ], start[ 1 ]:end[ 1 ], start[ 2 ]:end[ 2 ]] # key point: how to adapt this? result2 = a[ tuple ( slice ( * indexes) for indexes in zip (start, end))] assert np. all (result2 = = result2) |