import json import numpy as np from analyze import oklab2hex with open("web/database.js") as infile: next(infile) data = [ (d := json.loads(s))["total"] for line in infile if (s := line.strip().strip(",")) != "]" ] sizes = np.array([d["size"] for d in data]) centroids = np.array([d["centroid"] for d in data]) medians = np.array([d["median"] for d in data]) print("Simple mean of...") print(" Centroids:", oklab2hex(centroids.mean(axis=0))) print(" Medians:", oklab2hex(medians.mean(axis=0))) print("Reweighted mean of...") print(" Centroids:", oklab2hex( (centroids * sizes[:, np.newaxis]).sum(axis=0) / sizes.sum())) print(" Medians:", oklab2hex( (medians * sizes[:, np.newaxis]).sum(axis=0) / sizes.sum()))