🐍 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]}")