ML 学习站
跳到正文

🐍 Python 演练场

浏览器里直接跑 Python, 无需安装, 无需后端

试试看

Monaco

默认是线性回归 + MSE 的迷你演示。改成你自己的代码试试。

代码 (Python · 智能补全)
加载 Monaco 编辑器...
⏳ 首次运行会下载 ~10MB Pyodide
输出
点击「运行代码」查看输出...

几个能跑的示例

点下面的"复制"按钮,把代码贴到上面的编辑器里运行。

1. NumPy 矩阵运算

import numpy as np

# 创建矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

print("A:")
print(A)
print("B:")
print(B)
print("A + B:")
print(A + B)
print("A @ B (矩阵乘法):")
print(A @ B)
print("A 的转置:")
print(A.T)
print("A 的行列式:", np.linalg.det(A))
print("A 的逆矩阵:")
print(np.linalg.inv(A))

2. 简单数据可视化 (纯文本)

# 不用 matplotlib, 画个 ASCII 柱状图
data = [3, 5, 2, 8, 6, 9, 4, 7]
labels = ["A", "B", "C", "D", "E", "F", "G", "H"]

for label, v in zip(labels, data):
    bar = "█" * v
    print(f"{label} | {bar} {v}")

3. K-Means 聚类(纯 Python, 不调库)

import random
import math

# 生成 2D 数据 (3 个簇)
random.seed(42)
data = []
for cx, cy in [(0, 0), (5, 5), (0, 5)]:
    for _ in range(20):
        data.append((cx + random.gauss(0, 0.7), cy + random.gauss(0, 0.7)))

# K-Means (K=3)
K = 3
centroids = random.sample(data, K)

for it in range(10):
    # 分配
    clusters = [[] for _ in range(K)]
    for p in data:
        dists = [math.hypot(p[0] - c[0], p[1] - c[1]) for c in centroids]
        clusters[dists.index(min(dists))].append(p)
    # 更新
    new_centroids = []
    for cluster in clusters:
        if cluster:
            mx = sum(p[0] for p in cluster) / len(cluster)
            my = sum(p[1] for p in cluster) / len(cluster)
            new_centroids.append((mx, my))
    centroids = new_centroids
    print(f"迭代 {it+1}: 簇大小 = {[len(c) for c in clusters]}")
    print(f"  质心: {[(round(c[0], 2), round(c[1], 2)) for c in centroids]}")