python矩阵的切片(或截取)

时间:2023-03-08 19:44:10
python矩阵的切片(或截取)

  矩阵一般有行也有列,所以矩阵的截取也需要包含行和列两个参数。

  假设a是一个矩阵,a的截取就可写成:a[起始行:终止行,起始列:终止列],中括号中有一个逗号,逗号前的是为了分割行的,逗号后的是为了分割列的。例如:

  
a1=np.array([[1,2,3,4],[5,6,7,8],[11,12,13,14],[2,3,4,5]])
import numpy as np
a1=np.array([[1,2,3,4],[5,6,7,8],[11,12,13,14],[2,3,4,5]])
print('截取矩阵第二三行,第二、三列:\n',a1[1:3,1:3])

  结果为:

截取矩阵第二三行,第二、三列:
[[ 6 7]
[12 13]]

  如果只分割行,不分隔列,可写为: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

  以上就是矩阵的切片用法,欢迎大家提意见