#python #numpy
#python #numpy
Вопрос:
Как показано в приведенном ниже фрагменте, я последовательно записываю кучу массивов Numpy с формами (3, 225, 400) в двоичный файл.
with open("frames", "wb") as f:
while ...:
screen_buffer.tofile(f)
И я хотел бы проверить, могу ли я правильно записать эти массивы или нет. Однако у меня возникли проблемы при печати двоичного файла.
with open("frames", "rb") as f:
x = np.fromfile(fr, dtype=np.uint8)
while len(x)>0:
print(x)
x = np.fromfile(fr, dtype=np.uint8)
Приведенный выше код печатает только одну строку:
[31 55 55 ... 103 103 103]
вместо этого:
Комментарии:
1.
tofile/fromfile
Комбинация не сохраняетshape
илиdtype
.save/load
Вместо этого используйте пару.2. Я не могу использовать save / load, потому что «save» записывает один массив в один файл. Учитывая, что мой код создает тысячи массивов в цикле, этот подход приводит меня к созданию тысяч отдельных двоичных файлов.
3.
save
записывает заголовок плюс данные.tofile
просто записывает данные. Ваш выбор. Вы понимаете, как массивы хранятся в памяти? Такие вещи, как shape, dtype и databuffer?