Я прочитал очень большие файлы tdms, содержащие данные датчиков, в списки массивов numpy. Структура следующая: данные из нескольких файлов хранятся в экземплярах объекта с именем file_data. У объекта есть свойства для каждого типа датчика, которые в основном представляют собой списки numpy массивов (по одному для каждого отдельного датчика этого типа датчика).
Я хотел знать, сколько данных я храню здесь (так как размер файлы tdms, сгенерированные Labview, казались не очень значимыми со всеми метаданными).
Это код:
# Check memory
total = 0
file_data = [file_data1, file_data2, ...] # list of data objects read from six files
for no, f in enumerate(file_data):
sensor_types = [f.sensortype1, f.sensortype2, ...] # list of sensor types
sum = 0
for sensor_type in sensor_types: # list
for data in sensor_type: #np.array
sum += (data.size * data.itemsize)
total += sum
print('Data from file {}, size: {:.2f} GB'.format(no+1, sum/(1024**3)))
print('Total memory: {:.2f} GB'.format(total/(1024**3)))
Теперь это дает мне следующий вывод:
Данные из файла 1, размер: 2,21 ГБ
Данные из файла 2, размер: 1,88 ГБ
Данные из файла 3, размер: 2,27 ГБ
Данные из файла 4, размер: 1,53 ГБ
Данные из файла 5, размер: 1,01 ГБ
Данные из файла 6, размер: 0,66 ГБ
Общий объем памяти: 9,56 ГБ
Но я работаю на 8 ГБ ОЗУ Ма c, так что это число меня очень удивило, так как программа не взломала sh и я могу работать с данные. Где я ошибаюсь?