user5802211 user5802211 - 28 days ago 15
Python Question

python numpy array intepretation

I have problem in interpret the numpy array in python, for example,

data[:,i:i+3, j:j+3]


if i =2, j =1, then it would be
data[ :, 2: 5,1:4]

suppose the whole data array look like this:

data =([[ 0, 1, 2, 3, 4, 5],
[10, 11, 12, 13, 14, 15],
[20, 21, 22, 23, 24, 25],
[30, 31, 32, 33, 34, 35],
[40, 41, 42, 43, 44, 45],
[50, 51, 52, 53, 54, 55]])


then what does the array
data[ :, 2: 5,1:4]
look like? I really don't understand what does the colon
:
mean, and what does the comma
,
here mean?

Answer

Here's a use of the index pattern:

Make a 3d array, with shape large enough to accommodate this index;

In [568]: data=np.arange(2*6*5).reshape(2,6,5)
In [569]: data[:, 2:5, 1:4]
Out[569]: 
array([[[11, 12, 13],
        [16, 17, 18],
        [21, 22, 23]],

       [[41, 42, 43],
        [46, 47, 48],
        [51, 52, 53]]])

The result is a (2,3,3) array. If we think of the 3d array as having planes, rows and columns, this returns all planes, 3 rows, and 3 columns. It may help to print out data and identify the elements that have been selected. I made them unique to make this easier.

This is an example of basic indexing (all indexing terms are slices):

https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#basic-slicing-and-indexing