矩阵切片

矩阵为一个二维数列,所以矩阵的截取也需要包含行、列两个参数。

行、列参数切片

假设a是一个矩阵,a的截取就可写成:a[起始行 (包含): 终止行(不包含), 起始列 : 终止列],中括号中有一个逗号,逗号前的是为了分割行的,逗号后的是为了分割列的。
  注意
  起始位置是闭区间,即包含起始位置
  终止位置是开区间,即不包含终止位置
  也可以表示为:起始位置 <= 切片范围 < 终止位置
  例如:

import numpy as np
 # 创建一个numpy的数组
a1=np.array([[1,2,3,4],[5,6,7,8],[11,12,13,14],[2,3,4,5]]) 
# 获得矩阵切片a1[1:3,1:3]
print('截取矩阵第二三行,第二、三列:\n',a1[1:3,1:3])

结果为: 截取矩阵第二,三行中的第二、三列内容, 其结果是矩阵

[ [ 6 7]
 [12 13] ]

注意:Python打印格式为两层方括号,第一层表示为一个矩阵,里面的方括号表示矩阵的一行数据。

只按行切片 ,即:只需要行参数

只分割行,不分隔列,可写为:a[1:3],分割列的部分可以省略,代码如下:

print('截取矩阵第二三行:\n',a1[1:3])

打印结果如下:截取矩阵第二、三行,, 其结果是矩阵

[ [ 5 6 7 8]
 [11 12 13 14] ]

只按列切片,即:只需要列参数,行参数为‘ : ’

只分割列,不分隔行,可写为:a[ : , 1:3],分割行的部分不可以省略,代码如下:

print('截取矩阵第二三列:\n',a1[:,1:3])

打印结果如下:截取矩阵第二、三列, 其结果是矩阵

[[ 2 3]
 [ 6 7]
 [12 13]
 [3 4] ]

只切片一行

只分割某一行,可写为:a[ 2 ]

print('截取矩阵第三行:\n',a1[2])

打印结果: 截取矩阵第三行,其结果是列表
[11 12 13 14]

只切片一列

如果分割某一列,可写为:a[:,2] 注意:用于截取行的冒号不可省略,其结果是将所有行的第三个数拼接成一个列表

print('截取矩阵第三行:\n',a1[:,2])

打印结果:截取矩阵所有行第三列, 其结果是列表
[ 3 7 13 4]

切片指定行,指定列

如果分割某行某列,可写为:a[2,2](截取第三行的第三列)

print('截取矩阵第三行第三列:\n',a1[2,2])

打印结果:截取矩阵第三行第三列,其结果是一个
13

测试现场原图:

python矩阵切片 python截取矩阵_python