
Description
当用户使用 Python 做科研数据分析、统计建模、机器学习实验或批量数据处理,说"用 Python 跑一下分析""做个统计""清洗数据""画结果图""跑个脚本"时使用。本技能规定本地 Python 分析的统一操作规程:环境优先 uv/venv 隔离、依赖写入 requirements.txt 并通过 record_run 记录环境指纹、随机种子固定并登记、原始数据只读(清洗另存新文件)、产物落盘 output/<skill>/<slug>/latest/、图表 PNG+PDF 双格式 300dpi,并附 stats_integrity_check.py 对报告数字做确定性体检。同义触发场景:Python 分析、跑数据、统计分析、数据处理、画图、pandas、matplotlib、分析环境怎么配。
SKILL.md
python-analysis:Python 分析规程
目的
Python 是科研计算的主力工具,也是"跑过一次就复现不出来"的重灾区:依赖版本漂移、随机种子没固定、原始数据被顺手改掉、图只存了屏幕截图。本技能把每一次本地 Python 分析约束为可复现的最小闭环:
- 环境可重建:隔离环境 + requirements.txt + 环境指纹进 provenance;
- 结果可复算:随机种子固定并写进记录;
- 数据可追溯:原始数据只读,清洗产物另存;
- 产物可定位:统一落盘
output/<skill>/<slug>/,图表双格式; - 报告数字可机检:交付前过一遍
stats_integrity_check.py。
本技能只规定规程,不规定具体算法;算法选择由研究问题决定(必要时标注 [模型知识—待核实] 并与用户确认)。
前置检查
- 确认当前目录是工作区根目录(结构约定见 research-workspace);产物路径契约
output/<skill>/<slug>/latest/在这里同样适用,本技能的<skill>名即python-analysis(用户自建脚本的分析产物可用analysis作为 skill 名,保持与既有产物一致即可)。 - 确认原始数据已在
data/下且按只读原则管理;数据还没就位时先停下来请用户放数据,不要用"示例数据"冒充真实数据跑分析。 - 检查是否已有可用环境:项目根存在
.venv/或requirements.txt时优先复用,不要每次分析都新建环境。 - 涉及人体、患者、涉密数据的分析,先对照画像"伦理与数据合规要求"一节:红线数据不得离开规定机器,更不得上传到第三方在线工具(guardrail 第 8 条)。
1 · 环境:优先 uv,其次 venv
按以下优先级选择环境管理工具:
- uv(已安装时):
uv venv创建.venv/,uv pip install -r requirements.txt安装依赖。速度快、锁文件友好。 - venv + pip(uv 不可用时):
python -m venv .venv,激活后pip install -r requirements.txt。 - 不用 conda 新建环境,除非画像"算力环境"一节明确写了 conda——与画像保持一致优先于本规程。
纪律:
- 每个项目一个
.venv/,放在工作区根目录;不在系统 Python 里pip install任何分析依赖。 - 新装依赖后立刻
pip freeze > requirements.txt(uv 同理)更新锁定;requirements.txt 是产物的一部分。 - 首次在某环境跑分析时,用 provenance-record 登记一次环境(脚本自动写
.openscience/env/<hash>.txt);此后每次登记的 env_hash 自动关联。
2 · 随机种子:固定并登记
- 脚本开头统一设种子:
import random import numpy as np SEED = 42 random.seed(SEED) np.random.seed(SEED)
用到其他带随机性的库(如 torch、sklearn 的random_state)时,把同一个 SEED 传进去。 - 种子值写进 record_run 的
--note(如seed=42);换种子重跑视为一次新实验,登记新记录并说明换种子的原因。 - 不允许"先不固定种子看看效果"——探索性运行同样登记,大不了 note 里写"探索性,未固定种子",让读者知道这条结果的复现等级。
3 · 数据:原始只读,清洗另存
- 从
data/读,永不写data/下已存在的文件;任何脚本检测到自己在覆盖data/文件,立即停止并报告(research-workspace 原始数据只读原则)。 - 清洗、转换、筛选的产物是新文件:中间产物放
output/python-analysis/<slug>/<timestamp>/;需要跨分析复用的清洗后数据集放项目自建的derived/(不存在则创建),并在 README 或 note 里写清由哪份原始数据经哪步处理而来。 - 数据纠错走增补:发现原始数据有误时新存修正版 +
README-correction.md,原文件保留。 - 大文件读取失败(内存不足)时,改用分块(
pandas.read_csv(..., chunksize=...))或先抽样探索,不要在报告里假装全量分析过。
4 · 分析脚本:可重复执行
- 脚本放
scripts/,命名 kebab-case(如analyze-cycle-life.py);一次性探索可以用 notebooks/,但进入产物的分析必须落成脚本。 - 脚本满足"从头跑到尾不交互":
python scripts/xxx.py一条命令完成,不弹 input()、不依赖 notebook 单元格顺序。 - 参数用 argparse 或脚本顶部常量集中声明;硬编码路径只允许指向工作区内相对路径。
- 输出目录按时间戳创建(
YYYYMMDD-HHMMSS),本次全部产物写入其中。
5 · 产物落盘与图表规范
- 目录契约(与 research-workspace 一致):
output/python-analysis/<slug>/<timestamp>/ # 本次运行全部产物 output/python-analysis/<slug>/latest/ # 运行结束后的完整副本 - 图表一律双格式导出:PNG(预览、贴报告)+ PDF(排版、投稿矢量),均 300 dpi:
fig.savefig(out / "cycle-life.png", dpi=300, bbox_inches="tight") fig.savefig(out / "cycle-life.pdf", bbox_inches="tight") - 统计结果(表格、模型参数、p 值)同时落一份机器可读文件(CSV 或 JSON),不要只存在图里或打印在 stdout——报告里的每个数字都应能指回这份文件。
- 运行结束后刷新
latest/(先清空再放副本),然后用 provenance-record 登记:python <插件包路径>/skills/provenance-record/scripts/record_run.py \ --path output/python-analysis/<slug>/latest/ \ --tool "python scripts/analyze-cycle-life.py" \ --note "循环寿命分析,seed=42,数据 data/2026-08-cycling/"
6 · 报告数字体检:stats_integrity_check.py
分析结论写进 markdown 报告后、交付前,运行本技能自带脚本做确定性数字检查(纯标准库):
python <插件路径>/skills/python-analysis/scripts/stats_integrity_check.py \
--path reports/<报告>.md --format json
检查项:
- 百分比在 0-100 内;同一行疑似构成组的百分比之和 ≈ 100±0.5;
- p 值格式(
p<0.001或p=0.xxx)与取值在 0-1 内; N=n多次出现时数值一致;- 置信区间下界不超过上界。
脚本输出 {issues: [{check, location, detail, level}]},error 级问题修复前不得交付(guardrail 第 7 条);脚本退出码为 1 表示存在 error 级问题,可接入流水线。脚本是确定性规则,不替代统计判断——它查"数字写得对不对",不查"数字算得对不对"。
输出模板
分析完成后的汇报:
## Python 分析完成(<任务名>)
- 环境:.venv/(uv / venv),requirements.txt 已更新,env_hash=<hash>
- 种子:seed=<N>(已登记)
- 产物:output/python-analysis/<slug>/latest/(清单:…)
- 图表:…(PNG+PDF,300dpi)
- 数字体检:stats_integrity_check 通过 / N 条 warn(列出)/ N 条 error(修复中)
- provenance:已登记(note:…)
下一步:…
本技能不做什么
- 不替用户选统计方法或模型:方法适用性是领域判断,本技能最多提示"该选择需要领域依据",必要时标注
[模型知识—待核实]并请用户确认。 - 不动原始数据:任何清洗、纠错都生成新文件(research-workspace 只读原则)。
- 不管理远程与集群任务:SSH 远程算力见 remote-compute,Slurm 集群见 hpc-slurm,长任务后台管理见 run-monitor。
- 不保证统计正确性:stats_integrity_check.py 只做格式与一致性机检,显著性解释、多重比较校正等仍需用户与 reviewer 把关。
- 不自动安装系统级软件:装 Python 本身、装 uv 属环境准备,向用户说明后由用户执行。
收尾与下一步
- 产物进入报告或论文前:刷新
latest/、确认 provenance 登记完整、跑 stats_integrity_check.py 清零 error。 - 分析结论要支撑论文级论断时,进入 evidence-capsule 冻结流程(脚本、环境、数据版本一并打包)。
- 报告交付前按 reviewer-protocol 接受审查;数字类意见(check=number)与本技能体检结果一并处理。
- 分析耗时超过分钟级时,改用 run-monitor 后台运行,不要让人机会话空等任务结束。
More skills from the MiniMax-Code-Plugins repository
View all 36 skillsarticle2tasks
convert articles into Dida365 tasks
Aug 18Content CreationMCPTask Managementcitation-verify
verify academic citation accuracy
Aug 21Code AnalysisDocumentationQAResearchclaim-check
verify research claims against evidence
Aug 21AuditCode AnalysisResearchcn-literature
search and organize Chinese academic literature
Aug 21Data CleaningDocumentsResearchcold-start-interview
initialize research profiles via interviews
Aug 21DocumentationOnboardingProductivityResearchcustomize
customize research guardrails and settings
Aug 21Best PracticesConfigurationResearch
More from MiniMax
View publisherandroid-native-dev
develop Android native applications
skills
Jul 13AccessibilityAndroidKotlinMobile +1buddy-sings
generate singing performances for AI companions
skills
Jul 13AgentsAudioCreativecolor-font-skill
select color palettes and font pairings
skills
Jul 13DesignPresentationsThemesTypographydesign-style-skill
select visual design systems for presentations
skills
Jul 13DesignDesign SystemPowerPointPresentationsflutter-dev
build cross-platform apps with Flutter
skills
Jul 13DartFlutterMobilePerformance +1frontend-dev
build visually striking frontend web pages
skills
Jul 13AnimationCreativeDesignFrontend +1