资讯动态

用Python复盘乒乓球赛:张本美和胜陈幸同数据分析

发布时间:2026/9/2 12:13:20 来源:尧图企业网站定制
横滨冠军赛女单决赛的结果这两天在乒乓球圈讨论度很高张本美和以 4:2 战胜陈幸同拿下女单冠军。对于很多关注国乒的球迷来说这个结果有点意外但对于长期跟踪女子乒坛技战术变化的观众来说这场比赛其实是一个非常好的分析样本。作为技术类博主我不打算写情绪化的观赛感想而是想换一个角度把一场乒乓球比赛当成一个“数据分析项目”来拆解。比分是怎么构成的关键分出现在哪一局发球轮得分率是多少反手体系和正手体系的对抗逻辑是什么这些问题恰恰是业余选手、教练员、体育数据分析开发者都会关心的内容。这篇文章会围绕三个部分展开第一介绍这场比赛的基本背景第二给出一个完整的 Python 比分复盘示例包含数据构造、统计计算和可视化第三从技战术体系层面拆解张本美和与陈幸同的对抗逻辑并整理常见复盘误区和最佳实践。无论你是乒乓球爱好者还是正在做体育数据方向的开发者这篇文章都能给你一套可复用的思考框架。1. 事件背景一场值得被数据拆解的决赛1.1 WTT 冠军赛是什么先给不了解的读者补一下背景。WTT 指的是世界乒乓球职业大联盟World Table Tennis是国际乒联体系下的职业化赛事品牌。冠军赛属于 WTT 系列赛事中级别较高的单打赛事特点比较鲜明只设置男单和女单两个项目没有双打和混双参赛名单以世界排名靠前的选手为主赛制采用单败淘汰一战定胜负爆冷概率相对更高。横滨站是 WTT 冠军赛在 2025 年赛季的一站比赛。由于赛事积分较高、奖金可观又能和顶尖选手直接交手各协会都会派出主力阵容参赛。对年轻选手来说冠军赛是冲击主力层的重要舞台对国乒来说这也是检验外协会选手竞技状态的重要窗口。1.2 决赛结果与关注点从公开信息来看这场女单决赛的比分是 4:2张本美和获胜。也就是说双方打了六局张本美和赢下其中四局从而夺得本站女单冠军。标题中所说的“连克国乒终登顶”意味着她在晋级过程中击败了不止一位中国选手最终又在决赛战胜陈幸同整个过程含金量不低。这场比赛之所以引人关注有几点原因张本美和是日本队重点培养的年轻选手年龄不大但比赛气质和技战术体系已经比较成熟。陈幸同是国乒主力层选手打法扎实相持能力出色属于典型的实力派风格。决赛过程不是一边倒而是双方各赢两局之后进入关键局争夺比赛内容和复盘价值都很高。当然要说明一点由于目前公开渠道能看到的完整技术统计有限本文不会去编造每一个具体回合的数据而是重点演示“如果要做一场完整的数据复盘应该从哪些维度入手、代码怎么写、结论怎么下”。1.3 为什么值得从技术层面看很多人看比赛只看一个结果赢了就开心输了就失望。但如果你想真正理解乒乓球这项运动或者你想从事体育数据方向的工作就需要把比赛“拆开看”。一场乒乓球比赛可以拆成很多层比分层局分、总得分、净胜分。过程层发球轮得分、接发球轮得分、关键分表现。技术层正手得分、反手得分、前三板得分、相持得分。战术层发球落点选择、接发球手段、线路变化。心理层领先后的处理、落后时的调整、暂停后的变化。这篇文章会重点讲前四层因为它们是可以通过人工记录或自动化系统量化出来的。你能把一个模糊的概念比如“张本美和今天反手很凶”转化成“反手得分 18 分反手得分率 58%其中相持段反手得分 12 分”这样具体的数字复盘才有意义。2. 复盘一场乒乓球比赛先要定义数据维度做数据分析的第一步从来不是写代码而是想清楚“我要统计什么”。乒乓球比赛的数据维度非常多如果不做定义记录出来的数据就是一团乱麻。下面按照从粗到细的顺序梳理一套适合比赛复盘的数据维度。2.1 基础比分数据这是最基础的一层包含总局数几比几。每局比分例如 11:8、9:11 这样的单局小分。总得分双方六局小分相加。净胜分总得分减去总失分。基础比分数据能快速判断比赛的整体走势。比如总比分是 4:2但总得分可能很接近说明胜负主要取决于关键分也可能总得分差距很大说明有一方在大部分时间里占据主动。2.2 过程数据过程数据比基础比分数据更细核心是“发球轮”和“接发球轮”的概念。乒乓球每两分换一次发球权比赛实际上是发球方和接发球方的交替博弈。重要的过程指标包括发球轮得分率自己发球的回合里得分占比。接发球轮得分率对方发球的回合里得分占比。关键分表现单局打到 10 平以后谁能拿到最后两分。连续得分与失分比如“连得 3 分以上”的次数。为什么这些重要因为乒乓球比赛里发球方通常占优。如果一方发球轮得分率只有 50%接发球轮得分率反而超过 50%说明这位选手的接发球威胁很大或者反过来说对手的发球质量不够高。2.3 技术统计技术统计是教练和运动员最关注的部分它把得分和失分按技术类型归类。常见的分类方式发球抢攻发球后第三板直接得分或获得主动。接发球抢攻接发球直接得分或制造进攻机会。正手得分/失分正手使用后的结果。反手得分/失分反手使用后的结果。相持得分进入多板相持后得分。主动失误与非受迫失误对手没有给压力时的自失。这里有一个容易混淆的点得分数据和技术类型并不是一一对应的。一个回合里可能既有发球抢攻的成分又有正手的使用最后靠反手得分结束。所以在记录时通常以“结束这一分的最后一板技术”作为归类依据同时单独记录“主动失误”。这套口径要在团队内部统一否则统计数据无法横向对比。2.4 数据来源与局限性乒乓球比赛的数据来源主要有三个赛事官方技术统计权威但颗粒度有限通常只有得分、失误等大项。人工盯录教练团队或数据分析师边看比赛边记灵活但容易漏记。视频回放逐球标注最精确但耗时最长通常用于重点比赛。需要提醒的是任何数据都有口径和局限性。比如官方统计不会告诉你“这分是发球抢攻得的分”需要自己看回放补标签。所以对业余复盘来说建议先做“基础比分 过程数据”等技术统计体系稳定后再细化避免一开始就把自己累垮。3. 用 Python 对比分数据做一次完整分析工具准备Python 3.8 以上版本。pandas 用于表格处理。matplotlib 用于可视化。安装命令pip install pandas matplotlib下面用一段完整代码演示如何从“比分数据”到“统计结论”的全过程。先声明这里使用的是模拟数据仅用于演示分析方法不是实际比赛数据。3.1 准备比赛数据import pandas as pd # 模拟六局比赛数据 # zhang_ben 表示张本美和单局得分 # chen_xt 表示陈幸同单局得分 games [ {game: 1, zhang_ben: 11, chen_xt: 8, winner: 张本美和}, {game: 2, zhang_ben: 9, chen_xt: 11, winner: 陈幸同}, {game: 3, zhang_ben: 11, chen_xt: 7, winner: 张本美和}, {game: 4, zhang_ben: 12, chen_xt: 10, winner: 张本美和}, {game: 5, zhang_ben: 9, chen_xt: 11, winner: 陈幸同}, {game: 6, zhang_ben: 11, chen_xt: 6, winner: 张本美和}, ] df pd.DataFrame(games) df[净胜分] df[zhang_ben] - df[chen_xt] print(df)输出结果如下game zhang_ben chen_xt winner 净胜分 0 1 11 8 张本美和 3 1 2 9 11 陈幸同 -2 2 3 11 7 张本美和 4 3 4 12 10 张本美和 2 4 5 9 11 陈幸同 -2 5 6 11 6 张本美和 5这个数据结构很简单但已经能回答一些问题赢下比赛的选手净胜分是否真的占优有没有出现“赢了局数但总分差不多”的情况3.2 计算总分与净胜分total_zhang df[zhang_ben].sum() total_chen df[chen_xt].sum() total_net total_zhang - total_chen print(f张本美和总得分{total_zhang}) print(f陈幸同总得分{total_chen}) print(f总净胜分{total_net}) # 得分率 rate_zhang total_zhang / (total_zhang total_chen) print(f张本美和总得分率{rate_zhang:.1%})通过这一步你可以看出双方在六局中的整体压制力。如果总得分率接近 50%说明这是一场势均力敌的比赛局数上的 4:2 更多来自关键分的把握。3.3 关键局与关键分分析乒乓球比赛的“关键分”通常指单局打到 10 平之后的回合以及决定赛点归属的分数。虽然模拟数据里只有第 4 局打到 10 平以后但我们可以建立一个通用的统计逻辑# 找出每局是否出现10平 df[是否10平] (df[zhang_ben] 10) (df[chen_xt] 10) print(df[[game, zhang_ben, chen_xt, 是否10平]]) # 统计胜负局分布 print(df[winner].value_counts())3.4 得分走势可视化只看表格还不够直观用 matplotlib 画一张局分走势图会更清楚。import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [SimHei, Microsoft YaHei] plt.rcParams[axes.unicode_minus] False x df[game] plt.plot(x, df[zhang_ben], markero, label张本美和) plt.plot(x, df[chen_xt], markers, label陈幸同) plt.xlabel(局数) plt.ylabel(单局得分) plt.title(单局比分走势) plt.xticks(x) plt.yticks(range(0, 14, 2)) plt.legend() plt.grid(True, linestyle--, alpha0.6) plt.show()这张图能直观看出谁在开局建立领先、谁在末段追分、谁的发挥更稳定。3.5 扩展得分结构模拟如果你有更细的逐球记录还可以构造“得分结构”数据tech_data { 维度: [发球抢攻, 接发球抢攻, 反手得分, 正手得分, 主动失误], 张本美和: [12, 9, 18, 6, 11], 陈幸同: [8, 7, 14, 11, 9], } tech_df pd.DataFrame(tech_data) tech_df[差距] tech_df[张本美和] - tech_df[陈幸同] print(tech_df)从模拟数据里可以看出一个典型规律如果一方反手得分明显更多而另一方正手得分更多说明两个人的技术体系完全相反。接下来的技战术拆解就围绕这种差异展开。4. 从技战术体系看张本美和与陈幸同数据分析的意义在于验证和发现问题而技战术拆解则负责解释“为什么会出现这样的数据”。综合公开信息可以把两位选手的特点归纳如下。4.1 张本美和的打法特点张本美和是日本女乒新生代的代表人物之一。她的打法有几个标签反手体系为主反手拧拉、反手快撕、反手变线是她使用频率很高的技术。衔接速度快她的优势很少体现在单板质量上更多体现在连续进攻的衔接速度。落点意识强比赛中经常能看到她刻意打对手中间偏正手位制造对手站位矛盾。比赛气质突出落后时表情变化不大暂停后调整能力不错。从“击败国乒选手”这个结果反推她的比赛思路通常是发球轮尽量用反手拧拉抢先上手把比赛拖入自己舒服的反手相持节奏接发球轮则通过落点变化降低对手的上手质量再转入反手对抗。4.2 陈幸同的对抗思路陈幸同属于国乒体系培养出来的实力派选手技术厚度很好。她的特点正手质量高正手拉冲的旋转和力量在女子选手里属于上乘。相持能力强多板相持中不容易丢位置。反手稳定反手不是主要得分手段但防守和过渡非常稳。经验丰富面对年轻选手时她知道如何利用节奏变化打乱对手。面对张本美和这种快速衔接的对手陈幸同的理论优势是用旋转和质量压住速度。也就是说不让比赛进入张本美和舒服的快节奏而是用更强的前冲弧圈逼对手退台或者用落点调动对手前后移动。4.3 胜负手可能集中在哪综合双方技术特点这场决赛的胜负手很可能集中在以下三个维度。第一反手相持的得失分。张本美和要赢必须在反手对抗中拿到足够多的分数陈幸同要赢则要想办法避开对手的反手优势区把球打到正手位或者中路。第二发球抢攻的成功率。女子比赛里发球抢攻是最高效的得分手段之一。哪一方能在自己的发球轮率先发动哪一方就能掌握比分主动。第三关键分的执行质量。4:2 的比分说明双方都有赢局差距并没有想象中那么大。如果总得分接近那最终胜负往往取决于第 4 局这种关键局里谁更果断。从数据角度说关键分阶段的发球选择、暂停时机、落点变化都是值得重点记录的事件。需要强调的是以上分析属于技术风格层面的讨论不构成对具体比赛过程的精确还原。如果你想得到“张本美和本场比赛正手得分率是 X%”这类数据还是需要拿到完整的逐球统计表或官方技术报告。5. 复盘中的常见误区与数据陷阱做一次数据复盘并不难但做好很难。很多人第一次尝试时会踩进下面这些坑。5.1 只看比分忽略过程最典型的误区是只看大比分 4:2就得出“张本美和明显更强”的结论。但如果总分只差两分那说明双方几乎是同一水平线胜负只是因为几个关键分没抓住。把大比分当作唯一维度会掩盖过程数据中的大量信息。5.2 拿一场比赛推断整个能力一场比赛的样本量非常小。一位选手可能今天反手状态好明天就完全失灵。单场数据只能说“本场比赛表现如何”不能直接说“这位选手的整体反手能力更高”。正确做法是连续跟踪多场比赛比如一个赛事周期或一个赛季再下结论。5.3 忽视发球轮的价值乒乓球是发球方占优的运动。复盘时如果只统计总分不统计发球轮和接发球轮的拆分就会漏掉核心信息。举个例子A 选手总得分 50B 选手总得分 48看起来差距很小但拆开发球轮后可能发现 A 的发球轮得分率只有 55%而 B 的接发球轮得分率高达 48%这说明 B 的接发球其实非常强输球的原因是自己的发球轮没有打好。两种解读方向完全不同。5.4 口径不一致造成错判技术统计最容易出现口径问题。比如“反手得分”到底指“整个回合用反手结束得分”还是“回合过程中使用过反手并且最终得分”两者统计结果差异很大。团队复盘时必须提前定义清楚。否则今天用口径 A明天用口径 B积累的数据就无法纵向对比。5.5 常见数据复盘问题清单问题现象常见原因解决思路大比分领先但过程数据落后关键分把握较好增加关键分统计维度反手得分率高但比赛没赢反手之外环节失分过多拆分正手、前三板、失误数据单场结论与长期观察不符样本量太小连续跟踪多场比赛团队统计结果对不上技术口径不统一建立统一记录模板并培训记录太繁琐难坚持指标设计过多先记核心指标后续再扩展6. 数据复盘的最佳实践如果你想把这场比赛的复盘方法复制到自己的训练和工作中下面几条建议值得参考。6.1 先定指标再记数据不要一上来就记录所有信息。先想清楚要回答什么问题再决定记录哪些字段。比如想解决“接发球环节是否吃亏”那就重点记发球轮与接发球轮得分率想解决“反手使用是否有效”那就重点记反手得分与失分。指标设计阶段越克制执行阶段越容易坚持。6.2 过程数据和结果数据分开管理结果数据是每局比分、总局分、整场胜负过程数据是每一分的归属、技术类型、发球权状态。两类数据可以存在同一张表里但字段设计要有区分。建议至少包含match_id比赛标识。game_no局数。rally_no回合编号。server发球方。scorer得分方。tech_type技术类型。phase阶段发球抢攻、接发球、相持等。6.3 用统一模板沉淀数据手工记录很容易乱建议用表格模板统一录入。模板字段尽量做成下拉选项减少自由文本。例如“技术类型”下拉为“正手/反手/发球/接发球/其他”“阶段”下拉为“前三板/相持/关键分”。这样后续统计时不需要反复清洗数据。6.4 与视频回放结合数据记录可能出现误判尤其是“是否主动失误”这种主观指标。赛后复盘时建议结合视频回放对关键分和争议回合二次校验。很多专业团队的做法是先边看比赛边快速记录赛后用视频逐回合核对最后再进入统计流程。6.5 把复盘做成持续积累的数据资产单场比赛的数据价值有限连续一个赛季的数据才更有价值。建议建立统一的文件夹与命名规范例如2025_横滨冠军赛_女单决赛.csv方便后续检索与汇总。积累数据多了之后你还可以做选手画像、打法对比、趋势预测等更高阶的分析。6.6 安全与合规提示如果要采集赛事公开数据需要注意版权和赛事规则。比赛视频、官方技术统计属于赛事方资产商业使用前应获得授权个人学习复盘则建议只用于内部研究不对外传播完整视频和未公开数据。涉及运动员个人信息时遵循最小数据原则不采集与比赛分析无关的信息。7. 总结与下一步这篇文章从横滨冠军赛女单决赛引入把“一场乒乓球比赛”拆解成了可量化、可复盘的几个层次。我们首先梳理了比赛背景与技术分析的价值然后定义了基础比分、过程数据、技术统计等数据维度接着用 Python 写了一套完整的比分复盘示例最后从技战术体系和复盘误区两个角度做了延伸分析。如果你是一位乒乓球爱好者读完这篇文章后可以试着用手机录一段自己的比赛视频然后按文中的维度做一次手动统计。这里给你一个建议先只记录发球轮得分率和接发球轮得分率这两个指标坚持十场之后你十有八九会发现以前没注意的问题——比如自己的发球轮得分率低得惊人问题根本不是技术动作而是发球后的衔接意识。如果你是一位开发工程师可以考虑下一步把 Excel 手工统计升级成 Web 应用用 Flask 或 FastAPI 做一个比赛数据录入和可视化平台也可以尝试引入视频关键帧提取把逐球技术统计自动化让技术统计从“人工盯录”走向“半自动标注”。数据复盘的价值不在于“用数据证明谁更强”而在于把一个模糊的比赛过程转化成清晰的事实。赢球有赢球的原因输球有输球的结构。乒乓球如此软件项目的性能排查、线上故障分析也是一样的逻辑。希望这篇文章能给你带来一些新的视角。如果你也想用 Python 把自己的比赛数据做成可视化看板欢迎在评论区交流你的数据维度设计和踩坑经历。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价