最近在看选择性搜索的代码,python一些常用函数用法没有掌握好,导致理解困难,所以看懂一个做一个笔记,方便之后查看
前一篇文章介绍了dem.shape的含义
类似地,对于一个图像来说dem.shape[:2]
输出的是图像的长宽,但是后面增加新维度的操作我又看不懂了,通过查看输出并比较一下代码,帮助我理解了这个操作
dem = numpy.array([[[ 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0.]],
[[ 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0.]]])
print(numpy.zeros(dem.shape[:2]))
print(numpy.zeros(dem.shape[:2])[:, :, numpy.newaxis])
print(numpy.zeros(dem.shape[:2])[:, numpy.newaxis,: ])
print(numpy.zeros(dem.shape[:2])[numpy.newaxis,:, : ])
输出结果为
[[ 0. 0. 0.]
[ 0. 0. 0.]]
[[[ 0.]
[ 0.]
[ 0.]]
[[ 0.]
[ 0.]
[ 0.]]]
[[[ 0. 0. 0.]]
[[ 0. 0. 0.]]]
[[[ 0. 0. 0.]
[ 0. 0. 0.]]]
可以看出,第一个操作是在多维数组的最内层增加一个维度,第二个操作是在多维数组的从内到外的第二层增加一个维度,第三个操作是在多维数组的从内到外的第三层增加一个维度