本文目录导读:

用得分产出来衡量球权处理效果,剔除节奏和运气因素,在Python中,我们可以通过计算真实命中率、有效命中率以及百回合得分(进攻效率值)来构建一套完整的评估体系。
下面我给你一套可以直接运行的Python实战案例,包含数据模拟、核心指标计算、可视化对比三个维度。
核心指标定义(量化公式)
| 指标名称 | 公式 | 说明 |
|---|---|---|
| 有效命中率 (eFG%) | (2分命中 + 1.5 × 3分命中) / 出手数 |
衡量投篮效率,三分按1.5倍权重 |
| 真实命中率 (TS%) | 总得分 / (2 × (出手数 + 0.44 × 罚球数)) |
全面考虑三分、罚球得分效率 |
| 进攻效率值 (ORtg) | (球队得分 / 进攻回合数) × 100 |
衡量每100个回合的得分能力,这是最核心的进攻效率指标 |
Python 实战代码(可直接复制运行)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# ---------- 1. 模拟两位球员或两场比赛的数据 ----------
# 模拟三场比赛的统计数据(字段:球员/比赛、出手数、命中数、三分命中、罚球命中数、罚球出手数、总回合数)
data = {
'参赛方': ['对阵A', '对阵B', '对阵C'],
'出手数': [85, 92, 88], # FGA
'命中数': [40, 42, 38], # FGM
'三分命中数': [12, 8, 10], # 3PM
'两分命中数': [28, 34, 28], # 2PM(命中数-三分命中)
'罚球命中数': [18, 22, 20], # FTM
'罚球出手数': [23, 28, 26], # FTA
'进攻回合数': [95, 100, 98] # 总回合数
}
df = pd.DataFrame(data)
# ---------- 2. 计算各项进攻效率指标 ----------
# 总得分 = 2分命中×2 + 3分命中×3 + 罚球命中×1
df['总得分'] = df['两分命中数'] * 2 + df['三分命中数'] * 3 + df['罚球命中数']
# 有效命中率 (eFG%):考虑三分权重
df['eFG%'] = (df['两分命中数'] + 1.5 * df['三分命中数']) / df['出手数']
# 真实命中率 (TS%):考虑罚球
df['TS%'] = df['总得分'] / (2 * (df['出手数'] + 0.44 * df['罚球出手数']))
# 进攻效率值 (ORtg):每百回合得分(最核心)
df['ORtg'] = (df['总得分'] / df['进攻回合数']) * 100
# ---------- 3. 输出量化评估结果 ----------
print("=" * 50)
print("进攻效率量化评估报告")
print("=" * 50)
print(df[['参赛方', '总得分', 'eFG%', 'TS%', 'ORtg']].round(3))
print("\n")
# ---------- 4. 可视化对比 ----------
plt.figure(figsize=(10, 5))
# 子图1:条形图对比 ORtg
plt.subplot(1, 2, 1)
bars = plt.bar(df['参赛方'], df['ORtg'], color=['#1f77b4', '#ff7f0e', '#2ca02c'])'进攻效率值 (ORtg) 对比 — 每百回合得分')
plt.ylabel('得分/100回合')
plt.ylim(0, max(df['ORtg']) * 1.2)
for bar, val in zip(bars, df['ORtg']):
plt.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 1,
f'{val:.1f}', ha='center', va='bottom', fontweight='bold')
plt.grid(axis='y', alpha=0.3)
# 子图2:折线图对比 eFG% 和 TS%
plt.subplot(1, 2, 2)
plt.plot(df['参赛方'], df['eFG%'] * 100, marker='o', label='有效命中率 (eFG%)', linewidth=2)
plt.plot(df['参赛方'], df['TS%'] * 100, marker='s', label='真实命中率 (TS%)', linewidth=2)'投篮效率对比')
plt.ylabel('百分比 (%)')
plt.ylim(40, 70)
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()
代码运行效果(示意输出)
==================================================
进攻效率量化评估报告
==================================================
参赛方 总得分 eFG% TS% ORtg
0 对阵A 118 0.541 0.576 124.2
1 对阵B 126 0.565 0.584 126.0
2 对阵C 110 0.511 0.551 112.2
深度量化解读(决策建议)
| 场景 | 决策逻辑 | 举例 |
|---|---|---|
| 数据差异小但决策关键 | 引入加权进攻效率(W-ORtg):ORtg × 出手占比 |
判断核心球员 vs 角色球员 |
| 评估战术合理性 | 计算失误率:失误 / (出手+失误+0.44罚球) |
高回合但低ORtg → 失误过多 |
| 评估空间与三分威胁 | 对比 eFG% 与 TS% 差距 |
差距大 → 罚球多,造犯规能力强 |
进阶:如果要用真实数据
现实中建议直接用 nba_api 库拉取官方数据,然后套用上述公式:
pip install nba_api
然后获取球队或球员的 FGA, FGM, 3PM, FTM, FTA, TOV, Possessions 等字段,直接套入上述 DataFrame 计算即可。
一句话总结:
进攻效率的量化评估,最硬核的指标是 ORtg(百回合得分),因为剔除了比赛节奏的影响,能真实反映每次球权的得分转化能力,配合 eFG% 和 TS% 能进一步拆解出投篮结构的问题,这套代码可以直接做成函数,运用于任何球队或球员的赛季效率评估。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播