из измерений я получаю текстовые файлы, которые в основном содержат таблицу чисел с плавающей точкой, с размерами 1000x1000.Те занимают около 15 МБ пространства, которое, учитывая, что я получаю около 1000 файлов результатов в серии, сохранить недопустимо.Поэтому я стараюсь максимально сжать их без потери данных.Моя идея состоит в том, чтобы сгруппировать числа в ~ 1000 шагов в ожидаемом диапазоне и сохранить их.Это обеспечит достаточное разрешение.Тем не менее, мне еще нужно учесть 1.000.000 баллов, и поэтому мой результирующий файл по-прежнему занимает около 4 МБ.Я, вероятно, не смогу сжать это дальше?Большая проблема - время расчета, которое это берет.Сейчас я предполагаю, 10-12 секунд на файл, так что около 1000 часов для 1000 файлов.Ваае много.Это алгоритм, который я обдумал, у вас есть предложения?Вероятно, есть гораздо более эффективные алгоритмы для этого, но я не очень программист ...
import numpy
data=numpy.genfromtxt('sample.txt',autostrip=True, case_sensitive=True)
out=numpy.empty((1000,1000),numpy.int16)
i=0
min=-0.5
max=0.5
step=(max-min)/1000
while i<=999:
j=0
while j<=999:
k=(data[i,j]//step)
out[i,j]=k
if data[i,j]>max:
out[i,j]=500
if data[i,j]<min:
out[i,j]=-500
j=j+1
i=i+1
numpy.savetxt('converted.txt', out, fmt="%i")
Заранее спасибо за любые подсказки, которые вы можете предоставить!Jakob