在图像处理中经常看到nparr[…,2]的操作,不太理解该功能,通过下列演示来理解nparr[…,2]的用途!
>>> arr=[[[1,2,3,4],[4,5,6,7],[5,6,7,8]],[[1,2,3,4],[4,5,6,7],[5,6,7,8]],[[1,2,3,4],[4,5,6,7],[5,6,7,8]]]
>>> import numpy as np
>>> nparr=np.array(arr)
>>> nparr[...,0:1]
array([[[1],
[4],
[5]],
[[1],
[4],
[5]],
[[1],
[4],
[5]]])
>>> nparr[...,0]
array([[1, 4, 5],
[1, 4, 5],
[1, 4, 5]])
>>> nparr[...,2]
array([[3, 6, 7],
[3, 6, 7],
[3, 6, 7]])
>>> nparr[...,0:2]
array([[[1, 2],
[4, 5],
[5, 6]],
[[1, 2],
[4, 5],
[5, 6]],
[[1, 2],
[4, 5],
[5, 6]]])
通过以上IDLE代码运行结果可以看出,
nparr[…,0]获取到的是最低维度的第一个元素组成的数组(最低维度,原先为数组,后来为单个元素),获取到的维度为(3-1)[原始数组维度:3,要减去原先的最低维度,相当于原数组降低一个维度]。
nparr[…,0:1]获取到的是最低维度的元素序号范围是[0,1)的元素充当最低维度的数组(最低维度,原先是数组,后来还是数组),维度数不变。