У меня есть функция, которая записывает массив в сжатый *. Npz файл:
def save_a(file):
np.savez_compressed(file, a=[[1, 2, 3]])
Я хочу создать функцию, вызывающую функцию save_a()
, а затем добавить другую массив в файл (например, с метаданными):
def save_a_b(file):
save_a(file)
np.savez_compressed(file, b=[len(save_a.__name__)])
К сожалению, когда я пытаюсь использовать функцию save_a_b()
, у меня перезаписывается прежний массив:
buffer = io.BytesIO()
save_a_b(buffer)
buffer.seek(0)
with np.load(buffer) as fh:
for name in fh:
print(name, fh[name])
Мне нужно реализовать его без использования:
- частных методов,
- взлома формата .npz , если только его спецификация не гарантирует обратной совместимости в будущем.
Я предпочитаю решение, применимое как к файловым объектам, так и к str
путям.