我有一个指定尺寸的拟合图像,以像素为单位,我希望切掉顶部的一个像素和底部的一个像素。我试图使用:
sliced_array = my_array[1:-1,1:0]
然而,当我使用print(sliced_array.shape)
查询新切片数组的形状时,这给了我:
(4070,0)
如何实现这一目标?
N.B。我在Python中工作,还有numpy和astropy模块。
答案 0 :(得分:2)
您可以像这样切割最顶层和最底层
my_array[1:-1,:]
保留所有列并排除最顶行和最底行
答案 1 :(得分:1)
如果要在不停止的情况下对阵列进行切片,则可以始终省略“停止”值(直到它到达结尾)。就像你省略了所有轴的“步”值一样。
遵循该逻辑,您可以使用:
sliced_array = my_array[1:-1,1:]
你应该得到正确的结果。
也许作为一个例子,如果你想从顶部而不是底部切一行,你也可以省略起始值,只给出一个结束值:
sliced_array = my_array[1:-1,:-1]
一句话:根据你的形象,我不确定你是否正确的水平和垂直。使用FITS
图像时,x轴为轴1,y轴为轴0.不确定这是否会影响您。
如果是这种情况,您需要将其更改为:
sliced_array = my_array[:-1,1:-1]