"""Logging utility functions."""
import numpy as np
[docs]
def log_samples(
t: int,
sumstats: np.ndarray,
parameters: np.ndarray,
weights: np.ndarray,
log_file: str,
):
"""Save samples to file, in npy format.
Files will be created of name "{log_file}_{t}_{var}.npy",
with var in sumstats, parameters, weights.
Parameters
----------
t: Time to save for.
sumstats: Summary statistics, shape (n_sample, n_in).
parameters: Parameters, shape (n_sample, n_par).
weights: Importance sampling weights, shape (n_sample,).
log_file: Log file base name. If None, no logs are created.
"""
if log_file is None:
return
# uniquely define log file
log_file += f"_{t}"
for key, var in [
("sumstats", sumstats),
("parameters", parameters),
("weights", weights),
]:
np.save(log_file + f"_{key}", var, allow_pickle=False)