numpy スライス

pythonのリストやnumpy配列でのスライスは i:j:n の形式で行います。

ここでi は開始インデックス、 j は終了インデックスを表しており、
i以上でjより小さいインデックス(i <= n < j)でスライスされます。
次に n ですが、これはステップ数を表しますが、ステップ数は1の時は省略してi:jのみの記述をすることができます。

ですので質問にある 1:3 は1以上で3より小さいインデックス値 ー (1,2)にスライスされることになります。

また、ij の値も省略することが可能です。
i が省略された場合は i = 0 が設定され、 jが省略された場合はj = (配列のサイズ)が設定されます。

ですので
5: インデックス値 5から最後まででスライス
:5 最初からインデックス値 4 まででスライス
:  最初から最後まで(配列全体)でスライス
ということになります。

最後に、, の説明ですが、numpyでの2次行列の場合 
data[行の指定,列の指定] 
の記述にて行列から一部をスライスすることができます。

data[:,1:3]


は : (行全体)を指定
は 1:3 インデックス(1,2)を指定
となります。

 

>>> a = numpy.array([[0,1], [2, 3]])
>>> a
array([[0, 1],
       [2, 3]])
>>> a[:,0]
array([02])
>>> 

[行:列]でスライスでき、省略した場合はすべてを指定したことになるので、[:, 0]は全ての行の0列目を取得することになります。省略せずに書くと2x2の配列の場合ならa[0:2, 0]となります。