Я хотел бы сделать регистратор, который периодически добавляет вектор значений с плавающей запятой в двоичный файл. В конце концов, я хотел бы прочитать двоичный файл в виде матрицы.
Я смоделировал регистратор с -l oop. Закрывается, я пришел этот код,
import numpy as np
import os
os.remove('test.bin') # removes file if already created; comment it out in first run
# --- generate random matrix with 10 rows and 4 columns
data = np.random.normal(0,1,[10,4])
mm,nn = data.shape
# --- open file and write data to the binary file iteratively/periodically
with open('test.bin',mode='ba') as f:
for i in range(mm):
data[i,:].tofile(f) # vector appended toFile object
# --- read binary file and compare it with generated data
dat = np.fromfile('test.bin',dtype=float)
print('----- Compare data -----')
print('data: \n',data) # original data/matrix
print('dat: \n',dat) # logged binary file
Загруженный файл печатается как вектор. Я мог бы преобразовать вектор в матрицу, чтобы получить окончательную форму, но число столбцов может измениться, и я могу этого не знать. Есть ли более элегантный способ сохранить / добавить вектор в двоичный файл, а затем прочитать его в виде матрицы? Спасибо.