Мне нужно прочитать файл размером 2.5gb. Я использую следующий syntx:Эффективное управление памятью и обработкой python
import numpy as np
limit=4269*352*288*3
mat1=np.zeros(limit, dtype='uint8')
mat1=np.fromfile("path/to/file", "uint8", limit)
я теперь нужно изменить этот массив:
mat_new=np.zeros([4269, 288, 352, 3], dtype='uint8')
mat_new=np.transpose(np.reshape(mat1,[4269,3,288,352]), [0,2,3,1])
Это занимает около 35 секунд на моем 4gb оперативной памяти, i7 системы второго поколения. В любом случае я мог бы сделать это быстрее. Поскольку это только начало моей программы и более сложные вещи, чтобы идти вперед. Мне не нужно mat1
отныне!
Также я читаю только половину файла для начала, поскольку Python дает мне ошибку «максимальная память достигнута».
Сначала вам не нужно создавать нулевой массив, вы можете удалить строки 'np.zeros()'. чтение данных из файла происходит медленно, профилируйте свой код, чтобы определить затраты времени на «np.fromfile()». – HYRY
занимает около 18 секунд, чтобы читать 1,25 ГБ данных! и 12-14 секунд, чтобы изменить форму! – change