我正在使用带有 numpy 和 pyfits 的 Python 2.7.3 来处理科学 FITS 文件。为了速度,我想以一半或四分之一的分辨率处理图像,并拥有以下代码:
# Read red image
hdulist = pyfits.open(red_fn)
img_data = hdulist[0].data
hdulist.close()
img_data_r = numpy.array(img_data, dtype=float)
# Scale it down to one quarter size
my=[]
for line in img_data_r[::4]:
myline=[]
for item in line[::4]:
myline.append(item)
my.append(myline)
img_data_r = my
这行得通,但我想知道是否有更快、更原生的方法来减少数组。减少应该尽早发生,其想法是要处理的数据具有最小的可接受大小。如果有一种使用 pyfits 读取精简数据集的方法,那将是理想的。但是这样的方法似乎不存在(如果我错了,请纠正我)。numpy 怎么样?还是 scipy/数学/其他?