numpy - 数组的切片
导入数组的常用模块
import numpy as np # 创建一个多维数组 arr = np.random.randint(0,100,size=(5,5)) arr
在这里,我们创建了一个五行五列的二维数组
array([[10, 7, 83, 66, 5], [30, 12, 87, 2, 71], [75, 96, 36, 5, 62], [73, 25, 72, 22, 27], [ 2, 5, 52, 17, 93]])
我们先回忆一维数组的切片操作:
一维数组的切片 arr[x : y :z]
x : 起始值,y : 结束值,z : 步长值
多维数组的切片与之类似,不过多了一个操作列的参数
# 将数组的行倒置
arr[::-1]
array([[ 2, 5, 52, 17, 93],
[73, 25, 72, 22, 27],
[75, 96, 36, 5, 62],
[30, 12, 87, 2, 71],
[10, 7, 83, 66, 5]])
# 将数组的行和列倒置
arr[::-1,::-1]
array([[93, 17, 52, 5, 2],
[27, 22, 72, 25, 73],
[62, 5, 36, 96, 75],
[71, 2, 87, 12, 30],
[ 5, 66, 83, 7, 10]])
# 取出后三行(从第三行开始取)
arr[2::]
array([[75, 96, 36, 5, 62],
[73, 25, 72, 22, 27],
[ 2, 5, 52, 17, 93]])
# 取出前两行
arr[:2:]
array([[10, 7, 83, 66, 5],
[30, 12, 87, 2, 71]])
# 取出 1 2 5 行
arr[::2]
array([[10, 7, 83, 66, 5],
[75, 96, 36, 5, 62],
[ 2, 5, 52, 17, 93]])
# 取出后三列(从第三列开始取)
arr[::,2::]
array([[83, 66, 5],
[87, 2, 71],
[36, 5, 62],
[72, 22, 27],
[52, 17, 93]])
# 取出后两列
arr[::,:2:]
array([[10, 7],
[30, 12],
[75, 96],
[73, 25],
[ 2, 5]])
# 取出 1 3 5 列
arr[::,::2]
array([[10, 83, 5],
[30, 87, 71],
[75, 36, 62],
[73, 72, 27],
[ 2, 52, 93]])
这里展示一个数组切片的小应用案例
import matplotlib.pyplot as plt
# 读取本地图片的二进制数据
imgData = plt.imread('E:/pandas/imges/bg.jpg')
imgData
array([[[187, 218, 247],
[187, 218, 247],
[187, 218, 247],
...,
[187, 218, 247],
[187, 218, 247],
[187, 218, 247]],
[[182, 215, 246],
[182, 215, 246],
[182, 215, 246],
...,
[182, 215, 246],
[182, 215, 246],
[182, 215, 246]],
[[182, 215, 246],
[182, 215, 246],
[182, 215, 246],
...,
[182, 215, 246],
[182, 215, 246],
[182, 215, 246]],
...,
[[253, 253, 253],
[253, 253, 253],
[253, 253, 253],
...,
[253, 253, 253],
[253, 253, 253],
[252, 252, 252]],
[[253, 253, 253],
[253, 253, 253],
[253, 253, 253],
...,
[253, 253, 253],
[253, 253, 253],
[252, 252, 252]],
[[253, 253, 253],
[253, 253, 253],
[253, 253, 253],
...,
[253, 253, 253],
[253, 253, 253],
[252, 252, 252]]], dtype=uint8)
不难看出,读取的数据是存放在一个二维数组里面的
# 图片二进制数据展示 plt.imshow(imgData)
# 数组切片操作可以对图片进行剪切操作 plt.imshow(imgData[:300:])
还可完成的操作有 图片的反转,倒置,放大,缩小等,这里就不做相应演示了
浙公网安备 33010602011771号