Периодически регистрирует векторы строк в двоичном файле и читает их как матрицу - PullRequest
0 голосов
/ 17 февраля 2020

Я хотел бы сделать регистратор, который периодически добавляет вектор значений с плавающей запятой в двоичный файл. В конце концов, я хотел бы прочитать двоичный файл в виде матрицы.

Я смоделировал регистратор с -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

Загруженный файл печатается как вектор. Я мог бы преобразовать вектор в матрицу, чтобы получить окончательную форму, но число столбцов может измениться, и я могу этого не знать. Есть ли более элегантный способ сохранить / добавить вектор в двоичный файл, а затем прочитать его в виде матрицы? Спасибо.

...