async function pcaTransform(data, nComponents = 2) {
await pyodide.loadPackage("scikit-learn");
const jsonData = JSON.stringify(data);
pyodide.globals.set("X_json", jsonData);
pyodide.globals.set("n_components", nComponents);
const singularValues = pyodide.runPython(`
import json
import numpy as np
from sklearn.decomposition import PCA
X = np.array(json.loads(X_json))
del X_json
pca = PCA(n_components=n_components)
pca.fit_transform(X)
`);
return singularValues.toJs();
}