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]]
'''
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐