У меня есть проблема с преобразованием некоторого количества (в данном случае 153) 2D-массивов Numpy в 3D-массив (эти 2D-массивы представляют собой серые изображения - то есть 2048x2048x1 - для того, чтобы обрабатывать последовательность изображений вместо набора 2D-изображений). Мне нужно это, чтобы получить сигнал, сформированный с каждым значением пикселя со временем (что должно быть удобно с помощью Numpy, как только эта проблема будет решена).MemoryError пытается преобразовать 2D-массивы Numpy в 3D-массив
Мой код (довольно много) следующее:
zdim = len(imglist) # 'imglist' a Python list of the path for each image I need to process
windowspan = 512
xmin = ymin = 2
xmax = ymax = xmin + windowspan
sequence = []
for i in range(zdim):
hdulist = fits.open(imglist[i],'readonly') # allow to open FITS image files
hdr = hdulist[0].header['DATE-OBS'] # fetch the image date/time
img = fc.readfitsimg(imglist[i]) # return a np ndarray (2D)
patch = img[ymin:ymax, xmin:xmax] # take a small of the original image
print("patchSize : " + str(patch.size*4))
sequence.append(patch) # adding to the list
print("it : " + str(i))
sequence = np.array(sequence) # transform to numpy array
интерпретатор возвращает MemoryError примерно через 85 итераций ...
Любой бы есть какие-либо намеки на то, что происходит? (См. Некоторые подробности ниже)
Другие детали: - Я использую WinPython 32 бита (переносимый), потому что я не могу установить «правильный» дистрибутив Python (я переключался между Python 2.7.9.4 и 3.4.3.3 для цель тестирования) - Я вынужден использовать 32-битную Windows 7 на ПК с 4 ГБ, поэтому 3.5 ГБ для использования/Я попытался выполнить мой сценарий на другом компьютере (Win7 64 бит, 16 ГБ ОЗУ)
Спасибо за любую помощь, которую вы могли бы мне предоставить.
Вы должны дать всю обратную линию памяти MemoryError, в частности, на какой строке это произойдет. – cfh