(x: Sequence[Sequence[float]])
| 558 | explained_ratio = explained_ratio[:kept] |
| 559 | |
| 560 | transformed = [] |
| 561 | for row in z: |
| 562 | transformed.append([_dot(row, comp) for comp in eigvecs]) |
| 563 | |
| 564 | columns = {f"pc{i+1}": [row[i] for row in transformed] for i in range(kept)} |
| 565 | table = pl.DataFrame(columns) |
| 566 | |
| 567 | return { |
| 568 | "transformed": transformed, |
| 569 | "table": table, |
| 570 | "records": table.to_dicts(), |
| 571 | "components": eigvecs, |
no test coverage detected