Python多因子选股入门:从因子构建到回测的完整指南
1. 从零开始理解多因子选股为什么基本面量化值得花时间很多人第一次听到“多因子选股”这个词脑子里浮现的是一堆数学公式和密密麻麻的财务表格觉得这是机构里拿着高薪的量化研究员才玩得转的东西。但实际情况是只要你懂一点Python基础能看懂资产负债表和利润表的大致结构就已经具备了搭建一套基础多因子选股系统的前提条件。我自己最开始接触这个方向的时候也是从“什么是因子”“为什么要做基本面量化”这些最基础的问题一步步摸索过来的踩过不少坑也走过一些弯路今天就把这些前期知识储备的东西系统性地梳理一遍。所谓多因子选股本质上就是用多个维度的指标来给股票打分排序然后选出综合得分最高的那一批。这里的“因子”就是指标比如市盈率、净资产收益率、营收增速、资产负债率等等。单看一个指标选股很容易翻车比如你只看低市盈率可能会选出一堆夕阳行业的股票只看高ROE又可能买在景气度顶点。多因子的逻辑就是“不把鸡蛋放在一个篮子里”从估值、盈利、成长、质量等多个角度综合评估降低单一指标失效带来的风险。那为什么用Python来做这件事因为Python在数据处理方面有天然优势。pandas处理表格数据、numpy做数值计算、matplotlib做可视化再加上各种财经数据接口整个流程可以高度自动化。你不需要手动去Excel里一个一个拉数据、算指标写一次代码以后每期更新数据就能自动跑出结果。这对于需要定期调仓的选股策略来说效率提升是数量级的。这篇文章适合谁看如果你是刚接触量化投资的新手想从基本面角度入手但不知道从哪里开始那这篇内容就是为你准备的。如果你已经有一些编程基础但对财务指标和因子构建的逻辑还不清楚也可以从这里补齐短板。我会尽量用生活化的例子来解释专业概念让没有金融背景的读者也能跟上节奏。注意本文涉及的所有数据接口、代码示例均为通用方案演示不构成任何投资建议。实际使用时请自行评估数据源的可靠性和策略的适用性。2. 核心概念拆解因子、基本面与选股逻辑2.1 什么是因子用买菜的逻辑来理解因子这个词听起来很学术但其实逻辑特别简单。你去菜市场买菜会看几个维度价格便不便宜、新不新鲜、是不是当季的、摊主口碑好不好。这几个维度就是你的“选菜因子”。股票也一样你需要一些可量化的维度来判断一家公司值不值得买。在量化选股里因子通常分为几大类估值因子市盈率PE、市净率PB、市销率PS、股息率等。核心逻辑是“便宜的东西上涨空间大”。盈利因子净资产收益率ROE、总资产收益率ROA、毛利率、净利率等。核心逻辑是“赚钱能力强的公司更值得投资”。成长因子营收增长率、净利润增长率、经营现金流增长率等。核心逻辑是“增长快的公司未来价值更高”。质量因子资产负债率、流动比率、应收账款周转率等。核心逻辑是“财务健康的公司抗风险能力强”。动量因子过去一段时间的收益率、换手率等。虽然严格来说动量属于技术面但在多因子框架里经常和基本面因子混合使用。每个因子就像一把尺子从某个特定角度去衡量股票的好坏。但任何一把尺子都有局限性所以需要多把尺子一起量。2.2 基本面选股和技术面选股的本质区别技术面选股看的是价格和成交量的历史规律比如均线金叉、MACD背离、成交量放大等等。它的假设是“历史会重演”价格走势已经反映了所有信息。基本面选股看的是公司的财务数据和经营状况它的假设是“价格终将回归价值”好公司迟早会被市场认可。这两种方法没有绝对的好坏之分但基本面选股有几个明显的优势第一数据更新频率低财报一个季度才出一次不需要天天盯盘第二逻辑更扎实你知道自己为什么买这家公司而不是因为“图形好看”第三容量更大基本面策略通常能容纳更大的资金规模不容易因为交易拥挤而失效。当然基本面选股也有缺点。最大的问题是数据滞后性——你看到的财报可能是三个月前的经营情况等你买入的时候市场可能已经提前反应了。另外财务数据有可能被粉饰单纯依赖报表数字有踩雷的风险。这些都是在构建因子时需要特别注意的地方。2.3 多因子模型的基本框架长什么样一个完整的多因子选股流程大致可以拆成这么几步确定股票池比如全市场剔除ST股、剔除上市不满一年的新股、剔除流动性太差的股票。获取财务数据从数据源拉取每只股票的估值、盈利、成长、质量等指标。数据清洗与预处理处理缺失值、异常值做去极值、标准化等操作。因子有效性检验看每个因子和未来收益的相关性剔除无效因子。因子合成把多个因子加权合成为一个综合得分。排序选股按综合得分从高到低排序选出前N只股票。回测验证用历史数据检验策略的表现看收益、回撤、夏普比率等指标。定期调仓比如每季度财报发布后重新计算因子并调仓。这个框架看起来步骤不少但每一步拆开来看都不复杂。前期知识储备阶段最重要的是理解每一步在做什么、为什么这么做而不是急着写代码。3. 数据准备财务数据从哪里来、怎么用3.1 常见的数据获取渠道对比做基本面量化数据是基础。没有可靠的数据源后面的一切都是空中楼阁。目前常见的获取渠道有这么几类数据源类型代表方案优点缺点开源财经接口各类公开财经数据接口免费、上手快数据字段有限、稳定性一般券商研究平台部分券商提供的量化研究环境数据质量高、字段全需要开户、有使用门槛付费数据服务专业金融数据服务商数据全面、更新及时费用较高自建爬虫自行抓取公开财报数据灵活可控维护成本高、易失效对于刚入门的个人开发者我的建议是先从开源接口入手把整个流程跑通等策略逻辑验证清楚了再考虑升级数据源。一开始就追求完美数据很容易陷入“数据准备半年策略一行没写”的困境。3.2 财务数据的关键字段说明拿到数据之后你需要知道哪些字段是核心的。下面这张表列出了最常用的基本面字段字段名称含义所属类别使用注意PE_TTM滚动市盈率估值负值需特殊处理PB市净率估值重资产行业参考性更强ROE_TTM滚动净资产收益率盈利需关注可持续性gross_margin毛利率盈利行业间差异大revenue_yoy营收同比增长率成长需剔除基数效应profit_yoy净利润同比增长率成长波动较大debt_to_assets资产负债率质量金融行业不适用current_ratio流动比率质量低于1需警惕这些字段不是越多越好关键是理解每个字段背后的经济含义。比如PE_TTM为负说明公司亏损这时候低PE不代表便宜反而可能是陷阱。再比如资产负债率制造业和银行业的合理水平完全不同不能一刀切。3.3 数据清洗的四个关键步骤原始财务数据往往有很多“脏”的地方直接拿来算因子会出问题。数据清洗通常包括以下几步第一步处理缺失值。有些股票某些字段没有数据可能是新股、可能是行业特殊性。常见的处理方式是直接剔除该股票或者用行业中位数填充。我个人的习惯是如果核心字段缺失超过三个就直接把这只股票从当期股票池里去掉。第二步去极值。财务数据里经常出现极端值比如某家公司卖资产导致净利润暴增几百倍这种数据会严重干扰因子排序。常用的去极值方法有MAD法中位数绝对偏差法和分位数法。MAD法的逻辑是先算所有数据的中位数再算每个数据与中位数的偏差把偏差超过一定倍数的值拉回到边界上。第三步标准化。不同因子的量纲完全不同PE可能是10到100ROE可能是0到30%直接加权没有意义。标准化的目的就是让所有因子都变成均值为0、标准差为1的分布这样才有可比性。最常用的是Z-score标准化。第四步中性化。这一步很多人会忽略但其实很重要。比如你发现小市值股票的ROE普遍偏低如果不做市值中性化你的因子可能实际上在赌市值风格而不是真的在选高质量公司。中性化的做法是用因子值对市值等行业变量做回归取残差作为新的因子值。实操心得数据清洗这一步看起来枯燥但实际上是整个流程里最影响最终结果的环节。我见过太多人因子逻辑设计得很漂亮结果因为没处理好极端值回测收益虚高得离谱实盘一跑就原形毕露。4. 因子构建与有效性检验的实操要点4.1 单因子测试的标准流程构建好因子之后不能直接拿来用必须先检验它是否有效。所谓“有效”简单说就是这个因子值高的股票未来收益是不是真的比因子值低的股票好。标准的单因子测试流程是这样的每期比如每个季度根据因子值将股票池分成5组或10组。计算每组在下一期的平均收益。观察最高组和最低组的收益差是否显著。计算IC值信息系数即因子值与下期收益的相关系数。看IC的均值、标准差、IC_IR信息比率等指标。如果最高组的收益持续高于最低组且IC均值在0.03以上、IC_IR大于0.3那这个因子就算是比较有效的。当然这只是经验阈值不同市场、不同时期的标准会有差异。4.2 因子有效性的三个核心指标评价一个因子好不好主要看三个指标IC值Information Coefficient因子值与未来收益的截面相关系数。IC均值越高说明因子的预测能力越强。一般来说IC均值超过0.05就算不错了超过0.1就是非常强的因子。但要注意IC高不代表一定能赚钱还要看稳定性。IC_IRIC Information RatioIC均值除以IC标准差。这个指标衡量的是因子预测能力的稳定性。IC_IR越高说明因子在不同时期的表现越一致。通常IC_IR大于0.5就算比较稳定了。多空收益差最高分组和最低分组的收益差。这个指标直接反映了因子的选股能力。如果多空收益差常年为正且幅度可观说明因子确实能区分好坏股票。4.3 因子相关性分析与合成方法当你手上有多个因子时不能简单地把它们加起来因为因子之间可能存在高度相关性。比如ROE和ROA都是衡量盈利能力的相关性可能达到0.8以上同时使用会导致盈利因子被重复计算权重失衡。处理方法是先算因子之间的相关系数矩阵把相关性过高的因子合并或剔除。一般来说相关系数超过0.7的两个因子保留IC更高的那个就行。因子合成最常用的方法是等权加权和IC加权。等权就是每个因子权重一样简单粗暴但有效。IC加权是根据每个因子的历史IC均值来分配权重IC高的因子权重更大。我个人更倾向于等权因为IC加权容易过拟合历史数据而且因子IC本身波动就大用历史IC推未来权重未必靠谱。5. 回测框架搭建与常见陷阱5.1 回测的基本逻辑和关键参数回测就是用历史数据模拟策略的表现。听起来简单但细节特别多。一个基本的回测框架需要明确以下参数调仓频率季度调仓还是月度调仓基本面因子通常用季度调仓因为财报数据是季度更新的。持仓数量选前10只、前20只还是前50只持仓太少波动大持仓太多超额收益被稀释。交易成本佣金、印花税、滑点都要考虑。很多人回测收益很高一算交易成本就亏了。基准指数用来对比策略表现比如沪深300或中证500。5.2 回测中最容易犯的五个错误第一个错误未来函数。这是最致命的。比如你在计算因子时用了当天收盘后的数据但回测时假设当天收盘就能交易这就用了未来信息。正确的做法是财报发布后的下一个交易日才能使用该数据。第二个错误幸存者偏差。如果你只用了当前还在上市的股票做回测那些已经退市的股票就被自动剔除了这会高估策略收益。正确的做法是使用包含退市股票的全历史数据。第三个错误过度优化。为了让回测曲线好看不断调整参数比如把持仓数量从20改成18把调仓频率从季度改成两个月。这种过度拟合历史数据的策略实盘表现往往很差。第四个错误忽略流动性。小市值股票收益可能很高但实际交易时可能买不进也卖不出。回测时必须考虑成交额限制比如只选日均成交额超过一定阈值的股票。第五个错误数据对齐错误。财务数据的报告期和实际发布日期是两回事。比如一季报的报告期是3月31日但实际发布可能在4月底。如果你用报告期来对齐数据就会引入未来信息。避坑技巧回测结果好得离谱的时候先别高兴大概率是哪里出错了。正常的年化超额收益在10%到20%之间就算不错了如果回测显示年化50%以上几乎可以肯定有bug。5.3 评价策略表现的四个核心指标指标名称含义参考标准年化收益率策略每年的平均收益跑赢基准5%以上算合格最大回撤从最高点到最低点的最大亏损控制在30%以内比较理想夏普比率单位风险的超额收益大于1算不错大于2算优秀胜率盈利调仓次数占总次数的比例基本面策略通常50%到60%这四个指标要结合起来看不能只看收益。一个策略年化收益30%但最大回撤50%持有体验会非常差很多人中途就割肉离场了。6. 常见问题与排查技巧实录6.1 数据类问题排查问题一财务数据缺失严重怎么办先排查是数据源的问题还是股票本身的问题。如果是数据源接口不稳定换一个数据源试试。如果是股票本身某些字段没有比如银行股没有毛利率数据那就针对行业做特殊处理或者直接剔除该行业。问题二不同数据源的财务数据对不上怎么办这是很常见的情况不同数据商对同一家公司的净利润统计可能有差异。处理原则是选定一个数据源后就不要频繁更换保持一致性。如果发现某个字段明显异常可以手动核对原始财报。问题三财报数据更新不及时怎么办有些数据接口的更新有延迟比如财报发布后一周才更新。这时候可以在代码里加一个判断逻辑如果最新报告期数据缺失就沿用上一期数据但要标记出来避免误用。6.2 因子类问题排查问题一因子IC值很低甚至为负怎么办先检查因子计算逻辑有没有写错比如增长率算成了绝对值。如果逻辑没问题可能是这个因子在当前市场环境下失效了。因子失效是正常现象没有永远有效的因子。可以尝试调整因子定义比如把ROE换成ROE的同比变化。问题二因子之间相关性太高怎么办用相关系数矩阵排查把相关性超过0.7的因子合并。合并方法可以是取平均也可以做主成分分析提取主成分。但主成分分析的可解释性差我个人不太推荐在初期使用。问题三因子在回测中表现好但实盘不行怎么办大概率是过拟合了。检查回测中是否有未来函数、幸存者偏差等问题。另外实盘和回测的交易成本、滑点差异也要考虑进去。如果回测时没算交易成本实盘一扣就亏了。6.3 代码实现类问题排查问题一pandas处理大数据量时内存不够怎么办可以用分块读取的方式每次只读一部分数据。另外把数据类型从float64降为float32也能省不少内存。如果数据量实在太大考虑用数据库存储只把需要的数据读进内存。问题二循环计算因子太慢怎么办尽量用pandas的向量化操作代替for循环。比如计算所有股票的ROE不要一只一只循环直接用列运算。如果实在需要循环可以用apply或者numba加速。问题三回测代码跑一次要很久怎么办先做性能分析看时间花在哪里。通常是数据读取和因子计算占大头。可以把中间结果缓存起来避免重复计算。另外用多进程并行处理也能显著提速。实操心得我刚开始写回测的时候一个季度调仓的策略跑十年数据要十几分钟后来发现是每次调仓都重新读取全部数据。改成一次性读取、内存中切片之后时间缩短到几十秒。这种优化看起来不起眼但当你需要反复调试参数时节省的时间非常可观。7. 从知识储备到实战的过渡建议前期知识储备做得再充分最终还是要落到代码上。我的建议是不要等所有知识都学完了再动手而是边学边做。可以先从一个最简单的单因子策略开始比如只用低市盈率选股把数据获取、清洗、排序、回测整个流程跑通。跑通之后再逐步加入更多因子优化数据清洗逻辑完善回测框架。这个过程中你会遇到很多文档里不会写的问题比如某个数据接口突然不能用了、某只股票的财务数据明显异常、回测结果和预期完全相反。这些问题才是真正让你进步的地方。每解决一个问题你对整个系统的理解就深一层。另外不要闭门造车。多看看别人写的因子逻辑和回测框架哪怕不直接用也能给你很多启发。量化投资这个领域思路比代码重要而好的思路往往来自于广泛的阅读和交流。最后说一个我自己的体会基本面多因子选股不是一夜暴富的工具它更像是一种系统化的投资思维方式。它强迫你去关注公司的真实经营状况而不是被市场情绪牵着走。即使你最终不用它来实盘交易学习这套方法本身也能让你对投资有更理性的认识。

相关新闻

安装VSCode插件与安装Vue项目:用TaoToken统一Key打通本地开发链路

安装VSCode插件与安装Vue项目:用TaoToken统一Key打通本地开发链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 13:24:55 阅读更多 →
Zabbix 4.2集成Orabbix监控Oracle 12c:安装部署全指南

Zabbix 4.2集成Orabbix监控Oracle 12c:安装部署全指南

有人可能会问:监控Oracle数据库又不是非要用Orabbix,Zabbix自己也有原生模板,为什么还得额外搭一套东西?这个问题的答案,等你真正拿Zabbix自带的Oracle模板去接一套Oracle 12c RAC的时候就明白了——光补齐那些采集项的…

2026/10/15 13:24:55 阅读更多 →
MQTT客户端从选型到排障:QoS、会话、遗嘱与心跳实战指南

MQTT客户端从选型到排障:QoS、会话、遗嘱与心跳实战指南

简介:这是一套围绕 MQTT 协议的自写测试客户端资源,面向物联网开发者、嵌入式工程师及协议学习者,讲解客户端与 Broker 建立连接、发布订阅消息及 QoS 服务质量保障机制,适合初步接触 MQTT 或需要自测通信链路的工程场景。压缩包内…

2026/10/15 13:24:55 阅读更多 →

最新新闻

MATLAB间断有限元声波模拟:可调试可验证的DG-FEM实现

MATLAB间断有限元声波模拟:可调试可验证的DG-FEM实现

简介:本资源是一套基于Matlab实现二维声波方程数值求解的教学实践代码包,面向计算数学、声学仿真及偏微分方程数值方法方向的高年级本科生与研究生,聚焦间断有限元(DG)方法在波动问题中的应用。资源采用线性基函数构建…

2026/10/15 14:12:15 阅读更多 →
珠心算测验题解:C++枚举与哈希去重优化实战

珠心算测验题解:C++枚举与哈希去重优化实战

在准备蓝桥杯C算法提高的过程中,我遇到的第一道“看起来不难,其实有坑”的题目,就是珠心算测验。题目名字听上去像是给小学生准备的珠心算练习,实际上它考的是枚举、哈希和去重,不少第一次写的人会在这里丢分。这篇文章…

2026/10/15 14:12:15 阅读更多 →
MSVAR经济学回归分析MATLAB包:识别经济结构突变的实用指南

MSVAR经济学回归分析MATLAB包:识别经济结构突变的实用指南

简介:本资源是面向经济学、金融学及计量经济学研究者的MSVAR(马氏状态切换向量自回归)建模专用MATLAB工具包,专为处理存在结构性突变、 regime-dependent 动态特征的宏观经济与金融市场时间序列而设计。它实现了完整的MSVAR模型设…

2026/10/15 14:12:15 阅读更多 →
全模态、全双工、端到端:GPT-Live 之后被用坏了

全模态、全双工、端到端:GPT-Live 之后被用坏了

最近半年,技术媒体、各家发布会的主角,基本都是大模型和视觉模型。 文本能写代码,图像能看懂图表,模型之间的差距越来越小。 但有一条线也在往前走,只是没什么人聊:语音模型。 这条线的变化其实很剧烈。 最…

2026/10/15 14:12:15 阅读更多 →
Zookeeper FileTxnLog 事务日志持久化机制与调优实战

Zookeeper FileTxnLog 事务日志持久化机制与调优实战

1. 从一次磁盘写满的线上告警说起Zookeeper 集群半夜告警,磁盘使用率飙到 98%,节点频繁进入只读模式。排查下来不是数据量暴涨,而是事务日志目录里堆了几万个log.xxxxx文件,单个文件不大,但数量惊人。当时第一反应是&q…

2026/10/15 14:12:15 阅读更多 →
Nexus 3.15.2 Windows 部署实战:Maven 私服搭建与避坑指南

Nexus 3.15.2 Windows 部署实战:Maven 私服搭建与避坑指南

简介:本资源为 Nexus Repository Manager 3.15.2 Windows 64位官方安装包(RAR格式),专为Java开发团队及DevOps工程师设计,用于在局域网内快速搭建私有Maven仓库,解决多开发人员共享依赖、加速构建、离线缓存…

2026/10/15 14:11:12 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →