- 博客(51)
- 收藏
- 关注
原创 TensorRT 冷启动实测:首个请求 18.8 ms,稳态只要 0.6 ms
同一个 engine、同一个 context,第一个请求 18.828 ms、第二个 0.771 ms、稳态 0.605 ms——差 31 倍。拆开看:读文件 7.44 ms + 反序列化 4.78 ms + 建 context 5.79 ms + 首次 execute 1.82 ms(第二次只要 0.41 ms)。关键结论是「预热 1 次就够」,不是 10 次;而且换 batch size 只需再跑 1 次(batch=8 首次 1.937 ms vs 后续 1.141 ms),远不是 31 倍惩罚。
2026-11-06 15:13:44
351
原创 数据清洗 12 个检查点:交付前照着过一遍
清洗没有标准答案,但有标准动作。这篇把「拿到脏数据到能交付」拆成 12 个检查点:行数、主键、缺失、重复、类型、日期、枚举、勾稽、异常、列名、口径、留痕,每个都给出「查什么、怎么查、不通过怎么办」,最后合成一个可复用的清洗函数。
2026-11-06 15:07:29
132
原创 读写 Excel 的 10 个坑:公式、合并单元格、多 sheet
Excel 是交付标准,也是坑最多的地方:openpyxl 写进去的公式读回来是空、合并单元格只有左上角有值、日期变成数字、多 sheet 读成字典、xls 打不开、写文件被占用……这篇用 10 个真实场景把坑跑一遍,每个都给原因和可复制的解法。
2026-11-06 15:06:20
124
原创 时间序列的 10 个坑:从字符串日期到重采样
日期在 Pandas 里处处是坑:读进来是字符串、时区丢了、resample 的窗口边界搞不懂、rolling 前几行是 NaN、同比算成了环比……这篇用股票和订单两份数据把 10 个坑逐个跑出来,每个都给现象、原因和解法,最后给一份时间序列自检清单。
2026-11-05 18:42:28
202
原创 groupby 的 10 个坑:结果不对比报错更可怕
groupby 是 Pandas 最常用的方法,也是最容易「算错还看不出来」的地方:空键被悄悄丢掉、size 和 count 差一行、agg 之后索引变成组键、多列聚合变多层列名、transform 和 agg 混用……这篇用同一份数据把 10 个坑逐个跑出来,每个都给现象、原因和解法。
2026-11-05 18:41:34
212
原创 TensorRT 模型热更新实测:从停机 2.6 秒到平滑切换 128 毫秒
换模型版本有两种做法——停服务再起(实测停机 2606 ms,期间所有请求失败),或者后台加载 + 原子切换 + 引用计数延迟卸载(实测 128.4 ms 完成,1376 个请求零失败)。本文给出完整实现:请求侧 refcount、retired 标记、refcount 归零才真正 unload(实测 4 ms 后释放),并量化显存峰值代价(双份共存多占 205 MB)。
2026-11-05 18:39:51
374
原创 ViT 与 CNN 的 TensorRT 对比实测:层数差 3.7 倍,谁受益更多
同样 3M 参数级的模型,ViT 从 TensorRT 拿到 2.9 倍加速、CNN 只有 1.3 倍;而且小 CNN 在 TRT FP32 下(0.801 ms)反而比 PyTorch(0.496 ms)还慢。ViT 的 engine 有 55 层,CNN 只有 15 层——attention 与 LayerNorm 天然难融合。另外 patch 从 16 缩到 8(token 翻 4 倍),FP16 延迟只涨 6%,FP32 涨 2.2 倍。
2026-11-04 19:37:55
406
原创 Pandas vs Excel vs SQL:同一个需求,三种写法
同一个需求——按城市统计销售额并找出 Top3——用 Pandas、Excel 数据透视表、SQL 分别怎么写?这篇把三种方案摆在一起对照,讲清各自擅长什么、什么时候该换工具,并给出「Pandas 生成 SQL」「SQL 结果回到 Pandas」「Pandas 生成 Excel」三条衔接路径。
2026-11-04 19:37:45
374
原创 数据分析岗 Pandas 面试题 20 道(下):手写代码题
概念题能背,手写题才是分水岭。这篇给 10 道高频手写题:每组取 TopN、连续登录天数、找出重复记录、宽表⇄长表、缺失值按组填、按条件分组统计、两表对比差异、环比计算、分箱统计、一行代码做透视;每题都有题目、考察点、答案和可跑验证。标签:Python、Pandas、面试题、数据分析、数据处理
2026-11-04 19:37:35
305
原创 数据分析岗 Pandas 面试题 20 道(上):概念与读代码
面试问 Pandas,很少问「怎么读 CSV」这种能查到的,而是问「loc 和 iloc 有什么区别」「视图和副本怎么区分」这类看理解深度的。这篇整理前 10 道高频题,每题给「面试官想听什么 + 标准答案 + 可跑的验证代码」,覆盖数据结构、索引、选择、缺失值、分组和合并。
2026-11-03 16:12:27
252
原创 TensorRT 服务多进程扩展实测:进程越多吞吐越低,但 P99 救回来了
同一张 RTX 4060、同一个 ResNet-18 engine,把服务进程从 1 加到 4 个:吞吐 241.6 → 191.7 → 140.5 QPS(0.79× 和 0.58×,负扩展),RSS 从 792 MB 涨到 3171 MB,但并发 8 时 P99 从 773 ms 改善到 93 ms(8.3 倍)。顺带踩到一个测量陷阱:Windows WDDM 下 torch.cuda.mem_get_info() 看不到其他进程的显存,同一时刻 nvidia-smi 报 2610 MB、它报 1081
2026-11-03 16:12:18
484
原创 Pandas 常用方法速查表:60 条
写代码时最耗时的不是想逻辑,而是想不起方法名。这篇把 Pandas 最常用的 60 个方法按「读取、查看、选择、清洗、变形、聚合、时间、导出」八类整理成表,每条一句话说明加可直接复制的代码,最后用一段代码把最高频的 10 条串起来跑一遍验证。
2026-11-03 16:11:58
313
原创 Pandas 12 个高频报错(下):类型、合并与版本警告
上一篇讲了读取、索引、赋值,这篇接着讲更隐蔽的 6 类问题:NaN 转 int 报错、int 加 str 的 TypeError、merge 后行数翻倍、赋值长度不匹配、fillna 的 Downcasting 警告、多层索引切片的 PerformanceWarning。每个都给真实报错原文、原因和可以直接抄的解法,并附一份「看到警告该不该管」的判断标准。
2026-11-02 15:18:58
324
原创 JSON 还是二进制:TensorRT 推理服务传输层实测,吞吐差 5.1 倍
同一个 ResNet-18 engine、同一个 RunnerPool,只改传输格式:JSON 单请求 51.84 ms、二进制 8.61 ms、进程内直调 0.64 ms——差 80 倍;并发 4 吞吐 22.6 vs 115.9 QPS,差 5.1 倍。根因是 JSON 把 0.57 MB 张量膨胀成 2.91 MB(5.07 倍),编解码一次要 106 ms,是 GPU 推理的 165 倍。给出什么时候可以继续用 JSON、什么时候必须上二进制的判断标准。
2026-11-02 15:18:49
486
原创 Pandas 12 个高频报错(上):读取、索引与赋值
报错不可怕,可怕的是看不懂它在说什么。这篇整理了新手最常撞上的 6 个报错:FileNotFoundError、UnicodeDecodeError、ParserError、KeyError(列名带空格)、df[0] 取不到行、SettingWithCopyWarning,每个都给报错原文、真实原因和可直接抄的解法,代码全部可复现。
2026-11-02 15:18:36
381
原创 Python 数据处理进阶(二十四)把脚本变成工具:argparse、logging 与定时任务
本文构建一个可交付的报表生成器,通过argparse实现参数化输入(如输入路径、Top N 数量),用logging替代print实现分级日志记录(含时间戳、异常追踪),并结合定时任务部署。三者协同确保脚本可配置、可观测、可自动化,适用于团队协作与定期运行场景。
2026-11-01 19:54:28
295
原创 Python 数据处理进阶(二十三)从 Pandas 到 Seaborn:统计图入门
pandas 自带的 plot 能画图,但要做「统计图」——带误差棒的柱状图、分组箱线图、分布叠加核密度、相关系数热力图、成对关系图,Seaborn 更省事。这篇讲清 set_theme 主题、五类常用图、中文与负号设置、导出,以及什么时候该用 Seaborn、什么时候 pandas.plot 就够了。
2026-11-01 19:54:14
313
原创 Python 数据处理进阶(二十二)用 Pandas 做一次完整的用户行为分析
留存、复购、活跃度这些词听着玄,落到 Pandas 上都是 groupby 加透视表。这篇用一份模拟的用户订单数据,从造数据开始,一路算出资深用户、月活、复购率、留存矩阵和头部用户贡献,最后输出一段带关键数字的分析结论,并讲清每个指标的口径陷阱。
2026-11-01 19:54:02
361
原创 Python 数据处理进阶(二十一)相关性与分组对比:数据里藏着什么关系
算完汇总表之后,下一步就是从数据里看出「关系」:哪些指标一起涨、哪个城市哪类产品卖得好、分布有没有差异。这篇讲 corr 与 corrwith、crosstab 交叉表、groupby 分组对比、pd.cut 分段对比,并用热力图把相关系数画出来,最后强调一句「相关不等于因果」。
2026-10-31 15:33:06
474
原创 Python 数据处理进阶(二十)数据质量检查清单:交付前必须跑的 10 个校验
数据交出去之前,最怕别人问一句「这数对吗」。这篇把数据质量检查做成一个可复用的 check_quality 函数,10 项校验逐条给 PASS/FAIL:行数、主键唯一、缺失率、取值范围、日期连续性、重复行、枚举合法、金额勾稽、异常值、列名规范,并对脏数据和干净数据各跑一遍做对比。
2026-10-31 15:32:51
14
原创 TensorRT 部署收尾:一个体检工具、九条实测结论与一张排查决策树
九篇实测经验收尾。给出一个可直接运行的 trt_doctor.py:一条命令完成基本信息、显存账本、动态形状、延迟扫描、确定性、风险提示六项体检,并输出 Markdown 报告。同时把九篇的核心结论、最容易踩的十个坑、以及「跑不起来/跑得慢」的四步排查决策树整理成速查表。
2026-10-31 15:32:35
16
原创 Python 数据处理进阶(十九)Pandas 与 Excel 的分工:哪些活该留给 Excel
学会 Pandas 之后容易走极端,什么都想用代码做。但真实工作里,Excel 依然是交付和协作的主角。这篇讲清两者的分工:一次性分析、大数据量、要复用交给 Pandas;要给人改、要图表联动、要签字审批留给 Excel;并演示公式读写、透视表两边怎么写、数据怎么来回导。
2026-10-30 10:19:04
9
原创 TensorRT 批处理调度实测:窗口越大批越大,吞吐反而掉 61%
很多人以为加上 dynamic batching 就能把吞吐提上去。我实现了一个完整的攒批调度器(窗口 + 最大批 + Future 分发)在 RTX 4060 上实测:窗口 0/20/50/100 ms 时,平均批大小从 1.00 涨到 3.34(最大 32),但 QPS 从 62.3 掉到 24.1(−61%)、P50 从 545 ms 涨到 1458 ms。根因是开销结构:单次推理只占 0.29 ms,框架固定开销十几毫秒,攒批省下的时间补不上窗口等待。
2026-10-30 10:18:50
38
原创 Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
12 个月的报表、几十个门店的导出文件,结构一模一样却要一个个打开?这篇讲清批量处理的套路:glob 与 os.walk 怎么选、循环读取并加「来源」列、concat 汇总、从文件名里提取参数、坏文件跳过并记录,最后导出一张总表。
2026-10-29 09:38:12
215
原创 检测模型 TensorRT 部署实战:NMS 位置、动态分辨率与回传成本
分类模型输出 1000 个数,检测模型输出几十万个——差别全在后处理与回传。实测(自建轻量检测器,TensorRT 10.5):640×640 时 engine 只要 0.249 ms,但输出回传要 0.330 ms;NMS 放 CPU 是 9.78 ms,放 GPU 只要 1.476 ms(差 6.6 倍);把解码 + topk 塞进 engine,输出从 544000 个元素降到 1500 个,回传 0.330 → 0.100 ms,而计算几乎没有增加。
2026-10-29 09:31:36
477
原创 Python 数据处理进阶(十七)用 Pandas 自动生成周报:一次写好,每周复用
每周手动复制粘贴做周报,是最该被脚本替掉的活。这篇从「周报该放什么」讲到成品:groupby 出总览与各维度汇总、ExcelWriter 写多 sheet、openpyxl 补表头样式列宽冻结和数字格式、文件名带日期、回读自检,最后把它做成一个每周跑一次的函数。
2026-10-28 08:16:15
405
原创 TensorRT INT8 量化与校准实战:比 FP16 再快 1.34 倍,代价是什么
ResNet-18 实测 FP32/FP16/INT8 三方对比:engine 从 53.1 MB 压到 12.6 MB,batch=8 吞吐 1726 → 5092 → 6826 img/s,INT8 比 FP16 再快 1.34 倍、比 FP32 快 3.95 倍。代价是 top-1 一致率 96.88%、余弦 0.9977。文中给出可运行的 Python 熵校准器、校准样本量的实测影响(24→400 张)、以及一个完整复现的隐蔽坑:换了校准集但缓存名没改,engine 根本没重新校准。
2026-10-28 08:07:33
412
原创 Python 数据处理进阶(十六)内存告急:30 万行数据怎么从 55 MB 压到 4 MB
同样的数据,换个 dtype、把文本列转成 category,内存能差十倍。这篇用 30 万行实测:memory_usage(deep=True) 到底怎么算、数值列降级的边界在哪里、category 什么时候反而更慢、读 CSV 时怎么只读要用的列、分块统计怎么保证结果正确,最后给一张「什么列用什么类型」的对照表。
2026-10-27 17:51:57
323
原创 Python 数据处理进阶(十五)读数据的 N 种姿势:JSON、网页表格、数据库、Parquet
真实项目里的数据不止 CSV。这篇把 Pandas 常读的几种来源一次讲清:JSON 的 records 与 lines 两种格式和嵌套展开、网页表格 read_html、SQLite 的 read_sql 与聚合下推、Excel 多 sheet、Parquet 列式存储,附一张「什么数据源用什么函数」的对照表和各自的坑。
2026-10-26 14:16:24
583
原创 Python 数据处理进阶(十四)别再写 for 循环了:Pandas 向量化提速实战
同样算一列金额,for 循环、apply 和向量化在 5 万行上能差出三千倍。这篇把四种写法摆在一起掐表,讲清为什么慢、什么时候必须用 apply、map 和 replace 怎么选、条件赋值为什么推荐 np.where / np.select / pd.cut,最后给一份「能向量化就别循环」的判断清单。
2026-10-25 22:15:45
574
原创 Python 数据处理进阶(十三)多层索引:MultiIndex 到底怎么用
groupby 之后为什么有两行列头?按城市切片为什么报 UnsortedIndexError?这篇把 MultiIndex 拆开讲:怎么造、为什么必须先排序、loc 与 xs 怎么按层级取、get_level_values 怎么按层级筛、stack 与 unstack 如何互转宽长表、groupby 加 unstack 怎么出交叉表,以及导出 Excel 前为什么一定要 reset_index
2026-10-24 15:10:10
690
原创 Python 数据处理入门(十二):综合实战:从一份脏数据到一份分析报告
收官篇,把前 11 篇的知识串成一条流水线:读一份有重复行、空值、负金额、字符串日期的 sales.csv,依次做探查、清洗、多维分析、可视化,导出成带三个 sheet 的 Excel,最后打印一份带关键数字的分析结论。跟着跑一遍,你就有了自己的第一个数据分析项目模板。
2026-10-23 10:32:51
515
原创 多模型并发与显存调度:一个服务挂多个 TensorRT engine 的三种策略与实测
把三个模型挂在同一个进程里,实测 eager/lazy/lru 三种加载策略:启动常驻 701/0/0 MB,首请求 19.8/111.1/111.4 ms,三模型热后 701/701/404 MB。更关键的发现是 context 显存由最大激活张量决定而非参数量——0.09M 参数的 tiny_cnn 每个 context 要 296 MB,11.7M 参数的 resnet18 只要 79 MB。多模型共存不会叠加吞吐,实测保留率仅 51%。
2026-10-22 14:07:53
474
原创 Python 数据处理入门(十一):可视化:5 行代码把分析结果画成图
算出一堆数字却不知道怎么讲给别人听?这篇用 pandas 自带的 plot 把股票走势、城市销售额、产品占比、成绩分布一次画完,含中文乱码的根治办法、标题图例网格的加法、图片导出与一排两图的排版,全程不用学 Matplotlib 的底层 API。
2026-10-20 16:41:53
256
原创 TensorRT 显存不足排查手册:显存账本、预算公式与 6 个真实根因
engine 只有 23 MB,为什么一上线就 OOM?这篇把 TensorRT 的显存一段段量出来:反序列化 engine 24 MB、创建 1 个 context 88 MB、首次推理 2 MB,合计 114 MB——context 才是大头,而且线性增长(2 个 162 MB、4 个 310 MB)。含预算公式、workspace 实测、batch 与显存的真实关系,以及最隐蔽的坑:set_input_shape 失败不抛异常,只让 execute 空转
2026-10-20 16:41:36
777
原创 FastAPI + TensorRT 在线推理服务实战:P50/P95/P99、QPS 与框架开销实测
模型推理只要 0.6 ms,为什么接口却要 14 ms?这篇用 FastAPI + uvicorn 把 TensorRT 封装成 HTTP 服务,实测延迟构成、并发扫描与吞吐上限:本地推理 0.565 ms,端到端 P50 14.209 ms,最优吞吐 129.1 QPS;加 context、加进程都不提升吞吐,因为瓶颈在 HTTP 与 Python 层,而不在 GPU。
2026-10-19 11:21:58
601
原创 Python 数据处理入门(十)时间序列:按天、按周、按月自动汇总
订单日期读进来是一串字符串,没法按周按月统计?这篇从 pd.to_datetime 开始,讲清怎么把日期变成时间索引、怎么用 dt 取出年月日星期季度、怎么用 resample 按天按周按月自动汇总、label 和 closed 到底控制什么、滚动平均和 shift 怎么算趋势与环比,最后把结果导出成 CSV。
2026-10-19 10:32:17
410
原创 Python 数据处理入门(九)表的合并与拼接:merge、join、concat 怎么选
订单表里只有客户 ID,客户名称和城市在另一张表里,怎么把它们对成一张表?这篇讲清 merge 的 inner/left/right/outer 四种连接、连接后行数为什么会变多、NaN 是从哪冒出来的、同名列怎么用 suffixes 区分,以及 concat 做上下拼接和左右拼接的正确写法。
2026-10-18 17:45:18
451
原创 Python 数据处理入门(八)分组聚合:Excel 数据透视表的代码版
按城市统计销售额、按产品和月份交叉汇总、算出每个城市卖得最好的一单——这些在 Excel 里要点十几下的数据透视表,用 Pandas 的 groupby 三行就能出结果。这篇把单列分组、多列分组、agg 多函数、命名聚合、pivot_table 和数据透视表的对应关系一次讲透。
2026-10-18 17:44:52
243
原创 Python 数据处理入门(七)数据清洗:类型转换、重复值、异常值一次讲透
同一份数据,别人跑出 2 万销售额,你跑出 1 万 4——差别往往就在类型、重复行和异常值上。这篇用一个完整案例把清洗的五件事讲透:astype 与 to_numeric 的取舍、to_datetime 解析日期、duplicated 揪重复、str 系列做文本清洗、IQR 与业务规则找异常值,最后给出一份清洗自检清单。
2026-10-17 14:22:58
353
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅