numpy作为一个强大的科学计算库,在操作矩阵切片时往往混淆切片操作的写法,本博客对numpy中的切片操作进行分析。
以二维数组为例,首先,创建一个二维数组
import numpy as np
# arange三个参数分别是,最小值,最大值,步长
matrix = np.arange(0, 45, 5)
# [ 0 5 10 15 20 25 30 35 40]
# reshape操作,将一维转变为二维
matrix = matrix.reshape(3, 3)
'''
[[ 0 5 10]
[15 20 25]
[30 35 40]]
'''
接下来就是对上面的matrix二维数组进行切片操作
import numpy as np
matrix = np.arange(0, 45,5)
# [ 0 5 10 15 20 25 30 35 40]
matrix = matrix.reshape(3, 3)
print(matrix)
'''
[[ 0 5 10]
[15 20 25]
[30 35 40]]
'''
# 切片操作
# 选取所有行的第一列
print(matrix[:, 1])
# [ 5 20 35]
# 选取所有行的前两列
print(matrix[:, 0:2])
'''
[[ 0 5]
[15 20]
[30 35]]
'''
# 选取前两行的所有列
print(matrix[0:2, :])
'''
[[ 0 5 10]
[15 20 25]]
'''
# 选取前两行的后两列
print(matrix[0:2, 1:3])
'''
[[ 5 10]
[20 25]]
'''
import numpy as np
matrix = np.arange(0, 180,5)
matrix = matrix.reshape(6, 6)
print(matrix)
'''
[[ 0 5 10 15 20 25]
[ 30 35 40 45 50 55]
[ 60 65 70 75 80 85]
[ 90 95 100 105 110 115]
[120 125 130 135 140 145]
[150 155 160 165 170 175]]
'''
print(matrix[..., ::2, ::2])
'''
[[ 0 10 20]
[ 60 70 80]
[120 130 140]]
'''
print(matrix[..., 1::2, ::2])
'''
[[ 30 40 50]
[ 90 100 110]
[150 160 170]]
'''
print(matrix[..., ::2, 1::2])
'''
[[ 5 15 25]
[ 65 75 85]
[125 135 145]]
'''
print(matrix[..., 1::2, 1::2])
'''
[[ 35 45 55]
[ 95 105 115]
[155 165 175]]
'''