python3 矩阵的切片

如有 5*5 矩阵A,有语句: A[ x:y,z ]

x:y 表示的是矩阵的行。 x:y 表示从 x 行到 y 行的内容(左闭右开区间 ---就是x 和 y 取值为0~5,但还是表示5行,因为‘:’后面的数要减一,相当于[x,y)    ) 

z 表示的是矩阵的列,一共有 5 列,列序号由0开始,所以 z 取值为:0~4 


举例:

例如有 5*5的单位矩阵 E:

[[ 1.  0.  0.  0.  0.]           #0行
 [ 0.  1.  0.  0.  0.]           #1行
 [ 0.  0.  1.  0.  0.]           #2行
 [ 0.  0.  0.  1.  0.]           #3行
 [ 0.  0.  0.  0.  1.]]          #4行


(1)行操作

E[0:] 表示打印矩阵E 从0行开始的到末尾行的内容,即打印整个矩阵。

E[1:] 表示打印矩阵E 从1行开始到末尾行的内容,即:

[[ 0.  1.  0.  0.  0.]
 [ 0.  0.  1.  0.  0.]
 [ 0.  0.  0.  1.  0.]
 [ 0.  0.  0.  0.  1.]]

E[1:2]  :表示打印矩阵E 从1行开始到2行的内容,由于是左闭右开,即[ 1,2 ),所以打印的是 一行的内容:

[[ 0.  1.  0.  0.  0.]]

E[1:3] :表示打印矩阵E 从1行到3行的内容,也是因为左闭右开,即[1:3),所以打印的是1行和2行的内容:

[[ 0.  1.  0.  0.  0.]
 [ 0.  0.  1.  0.  0.]]


(2)列操作:

E[ : , 1] :表示在整个矩阵E的基础下,打印1列: (1列不是指1一个列,而是序号为1的列,5*5矩阵的列的序号范围为 0~4)

[ 0.  1.  0.  0.  0.]

E[1:3,2] :在矩阵E 的 1行~2行 ( [1,3))的前提下打印2列。 (2列不是指两列,而是序号为2的列,5*5矩阵的列的序号范围为 0~4)

[ 0.  1.]


你可能感兴趣的:(机器学习)