Python调查问卷数据统计:清洗、分析与可视化实操指南
简介这是一份2024年更新的Python调查问卷数据统计实现资料定位清晰面向需要快速完成问卷数据整理、统计分析与结果汇报的数据分析初学者及课程设计开发者尤其适合毕业设计、课程报告、市场调研统计等场景。压缩包共129个文件约185.63MB以38个PPT演示文稿、15个doc和10个docx文档、15个md笔记、11个pdf为主另有少量xlsx表格、py脚本和mp4视频PPT/PDF适合汇报与阅读md/doc便于二次编辑xlsx可承载问卷原始数据py脚本直接展现统计处理流程。除代码和素材外资源还包含软件工程规范文档、测试用例编写规范、概要设计说明书等模板方便在完整项目中同步完善需求、设计、测试与文档管理。目前已有208人学习下载整体文件类型覆盖演示、文档、脚本与数据适合希望结合规范文档体系理解问卷统计实现、并快速产出可展示成果的读者。1. 调查问卷数据统计Python 不是用来算平均数的是用来救命的拿到一份 1200 行的问卷结果结构乱七八糟多选题答案在同一个单元格里用逗号隔开开放题混着 emoji 和错别字还有二十多个“其他”选项写了同一个意思的不同说法。用 Excel 硬搓统计光是清洗就能耗掉一个下午。而用 Python 实现调查问卷数据统计核心不是写出统计函数而是把里面那几个高频痛点——多选题拆分、文本归一化、交叉表透视、图表中文乱码——逐个击破。这套脚本跑完原始数据进、统计图表和明细表出参数改一改就能套到下一份问卷。适合谁拿到问卷结果不知道怎么下手的初级数据分析师以及被各种格式的问卷逼到想写宏的运营同学。2. 读取与清洗一份问卷 Excel 到规整 DataFrame 的四步处理2.1 不同问卷导出格式的兼容策略问卷平台导出的数据一般分两种一种是 Excel 表头就是题目标题一行一个样本非常规整另一种是稀疏矩阵格式每一行只有填过的题才有值没填的直接空着。后者最坑因为 pandas 读进来全是 NaN直接 groupby 会把你气到怀疑人生。常见做法是先用pd.read_excel把表读进来然后区分“行是样本”和“行是选项”的布局。前者直接拿原始 DataFrame 去清洗后者得先做一步pivot把行索引变成问卷编号列变成题目编号。我一般会先print(df.shape)和print(df.head())看一眼结构再决定走哪条路。import pandas as pd raw_df pd.read_excel(survey_data.xlsx, sheet_name0, dtypestr) print(原始数据形状:, raw_df.shape) print(raw_df.head(3))这段代码里dtypestr很关键。问卷导出文件里经常混着“001”这种编号不指定字符串类型的话会被读成数字 1后面做文本匹配就全乱了。sheet_name0是取第一个工作表如果源文件有多个 sheet可以改成 sheet 的名字比如sheet_name问卷结果。打印前 3 行是确认表头映射是否正确的最快方式。2.2 列名映射与缺失值预处理导出文件的列名通常是“第1题您的工作年限”这种带题号的长文本直接当 DataFrame 列名用没问题但如果后面要写一堆重复的代码手打这么长的列名就是灾难。我会在清洗步骤里把列名统一重命名为短别名q1_age、q2_salary、q3_edu这样的风格代码可读性立刻上一个档次。缺失值这块有个常见误区很多人看到 NaN 就 dropna() 全删掉但问卷数据里“未作答”本身就是一种有效信息。比如“您对本产品的整体满意度”这道题如果没作答可能意味着用户根本没深度使用统计时要单列出来而不是直接删。df raw_df.rename(columns{ 第1题您的年龄段: q1_age, 第2题您的职业: q2_job, 第3题您使用本产品的时间: q3_usage_time, 第4题您最常用的功能可多选: q4_multi_features, 第5题您对产品的整体满意度: q5_satisfaction, 第6题您的其他建议: q6_open_suggest }) df[q5_satisfaction] df[q5_satisfaction].fillna(未作答) df[q1_age] df[q1_age].fillna(未填写)这里fillna(未作答)只是针对单选题列做的兜底多选题列不能这样填因为多选题拆完之后每个子列应该是 0/1 值。缺失值处理策略必须按列类型分别定统一填“无”在后续统计里会污染频次分布这是新手最常见的坑。3. 多选题拆分与文本归一化统计前最耗时的两道工序3.1 多选题单元格拆分的两种数据形态多选题在原始表里常见两种存储方式一种是一个单元格里存“功能A、功能B、功能C”这种分隔符是中文顿号另一种是每个选项单独一列填了为 1没填为空。第一种需要拆列第二种只需要把空值填成 0。很多问卷平台导出的是第一种因为选项个数不确定平台没办法预先设计好列。拆分的核心逻辑就是str.split()加apply()循环。但注意拆分后要转成独热编码矩阵不是简单地 split 就完事。实际操作中我会先统计所有出现的选项全集再逐列做布尔映射。import re def split_multi_choice(cell): if pd.isna(cell): return [] # 统一分隔符把中文顿号、逗号、分号全替换成英文逗号再拆分 cell_clean re.sub(r[、,;], ,, str(cell)) return [item.strip() for item in cell_clean.split(,) if item.strip()] df[q4_multi_features_list] df[q4_multi_features].apply(split_multi_choice)先定义拆分函数正则re.sub(r[、,;], ,, ...)做的是分隔符归一化这一步处理得越彻底后面得到的所有选项全集就越干净。strip()是去选项前后的多余空格——导出数据里经常出现“功能A ”这种带尾随空格的值不去掉的话功能A和功能A 会被当成两个选项统计频次直接翻倍。3.2 独热编码展开与选项全集核对拿到每个样本的选项列表之后下一步把所有选项去重得到全集然后为每个选项生成一列 0/1 值。这步用 pandas 自带的方式做很直接但性能上有讲究数据量大时循环赋值会慢批量apply更高效。all_options [] for lst in df[q4_multi_features_list]: all_options.extend(lst) all_options sorted(set(all_options)) print(选项全集:, all_options) for opt in all_options: df[fq4_opt_{opt}] df[q4_multi_features_list].apply( lambda lst: 1 if opt in lst else 0 ) feature_cols [fq4_opt_{opt} for opt in all_options] print(feature_cols)这里sorted(set(all_options))是去重加排序排序是为了保证后面图表的图例顺序稳定。lambda的写法简洁但如果有几十个选项每个选项跑一次全表apply1200 行的数据大概要几百毫秒完全可接受。关键是这个展开后的长表能直接喂给后续的频次统计和交叉分析不用再回原表反复解析。3.3 开放题文本的轻度清洗策略开放题统计在问卷报告里通常只做词频和分类汇总不需要上 NLP 大模型。文本清洗的核心是去空行、去纯标点、统一大小写、去除明显灌水内容。直接调字符串方法就行没必要为了这个引入 jieba 做分词除非你要做的报告有深度的语义分析需求。def clean_open_text(text): if pd.isna(text): return t str(text).strip() # 去除只含标点或无意义字符的响应 if len(t) 1: return return t df[q6_open_suggest_clean] df[q6_open_suggest].apply(clean_open_text) # 按清洗后的文本长度排序快速浏览有效反馈 valid_feedback df[df[q6_open_suggest_clean] ! ][q6_open_suggest_clean].value_counts()len(t) 1过滤的是单字响应比如用户只填了一个“好”或一个“6”这类内容统计出来没信息量。value_counts()是快速查看高频反馈的便捷手段你一眼就能看出用户集中反馈的问题点是哪几个。4. 核心统计指标计算频次占比、交叉分析与卡方独立性检验4.1 单选题频次统计与占比计算的分母陷阱单选题统计最简单但分母极易出错。做占比时分母通常是“本题有效作答数”而非“总样本数”因为总样本包含了本题未作答的人。如果直接把未作答也算进分母满意度 90% 可能实际是 82%汇报时会被追问到怀疑人生。具体实现上我用value_counts()拿频次再手动除“有效作答数”计算占比而不是用normalizeTrue。因为normalizeTrue的分母是总数包含 NaN 的话会自动跳过的逻辑在不同 pandas 版本里行为不一致吃过一次亏之后就不信任它了。valid_sat df[df[q5_satisfaction] ! 未作答][q5_satisfaction] freq valid_sat.value_counts() total_valid freq.sum() ratio (freq / total_valid * 100).round(1) stat_df pd.DataFrame({频次: freq, 占比%: ratio}) print(stat_df)这里先用布尔索引选出有效样本再value_counts()最后手动除总有效数。round(1)是保留一位小数报告里够用了不用追求太多位。注意value_counts()默认是降序排列即频次最高的选项排最上面如果你要按题目选项的原始顺序展示需要加sort_index()。4.2 交叉分析pd.crosstab 与 normalize 的真实语义交叉分析是问卷统计里最有信息量的一环比如“不同使用时长用户的满意度分布”。pd.crosstab是首选工具它内部做的是分组计数比手动 groupby 加 unstack 更直观。但normalize参数经常被误解——normalizeindex是每行归一normalizecolumns是每列归一用错方向会导致结论彻底反掉。cross pd.crosstab( df[q3_usage_time], df[q5_satisfaction], marginsTrue ) print(cross) # 行方向百分比看每种使用时长群体内部的满意度分布 cross_ratio pd.crosstab( df[q3_usage_time], df[q5_satisfaction], normalizeindex, marginsTrue ).round(3) * 100 print(cross_ratio)marginsTrue会在行列末尾加上合计行/列。做行方向占比时每一行的百分比之和是 100%适合对比不同群体的结构差异。比如看“3年以上用户”和“1个月以下用户”在“非常满意”上的占比差距就能验证用户粘性与满意度的关系。4.3 卡方独立性检验用 scipy 验证交叉表结论是否显著交叉表只能看出趋势要做到“差异是否显著”跑一个卡方检验。scipy.stats.chi2_contingency用起来很简单但要注意两个条件期望频次不能有太多小于 5 的格子否则结果不可靠交叉表里不能有全零行列要提前清理。from scipy.stats import chi2_contingency # 去掉 margins 行和列用原始计数表做检验 observed pd.crosstab(df[q3_usage_time], df[q5_satisfaction]) chi2, p_value, dof, expected chi2_contingency(observed) print(卡方值:, round(chi2, 3)) print(p值:, round(p_value, 4)) print(自由度:, dof) if p_value 0.05: print(存在显著差异不同使用时长的满意度结构不同) else: print(未检测到显著差异)卡方值是一个非负标量代表观察频次与期望频次的偏离程度p 值小于显著性水平一般取 0.05说明两个分类变量不独立。expected返回期望频次矩阵我习惯顺手看一眼它有没有太多小值如果有就用 Fisher 精确检验或者合并稀疏类别否则统计报告会被人质疑方法论。5. 让图表说人话中文乱码、堆叠条形图与导出报告的四个避坑点5.1 中文字体配置matplotlib 默认字体不认汉字matplotlib 默认字体是 DejaVu Sans不认中文画出来的图表所有中文标签全是方块格子。这个问题的标准解法是手动指定中文字体比如在画图前检查系统可用字体列表选定一个中文字体后通过rcParams全局设置。实际跑过的机器环境不同中文字体名可能完全不同。最稳妥的办法是先用matplotlib.font_manager获取所有已安装字体找到可用中文字体再设置。这是套利逻辑代码要在脚本开头就做检查。import matplotlib.pyplot as plt import matplotlib.font_manager as fm # 查找系统里已安装的中文字体取第一个可用的 available {f.name for f in fm.fontManager.ttflist} zh_fonts [name for name in available if any( key in name for key in [PingFang, Microsoft YaHei, SimHei, Noto Sans CJK] )] if zh_fonts: plt.rcParams[font.sans-serif] [zh_fonts[0]] plt.rcParams[axes.unicode_minus] False print(当前使用字体:, zh_fonts[0]) else: print(警告未找到中文字体图表将出现乱码)axes.unicode_minus设置为 False 是让负号正常显示不然坐标轴负号会显示成方块。这个字体检查逻辑应该放在风格设置模块别分散到每个画图函数里。5.2 多选题的纵向堆叠条形图一眼看出选项分布多选题不适合用普通柱状图因为选项与选项之间不是互斥的用饼图也是灾难。最常见且直观的呈现方式是纵向堆叠条形图每个条代表一个选项条内按某个分组变量分色块。这样一张图能同时表达两个维度选项整体频率以及分组分布结构。import numpy as np # 以使用时长分组看各功能选项的分布 groups df[q3_usage_time].dropna().unique() plot_data [] for g in groups: mask df[q3_usage_time] g sub df[mask] plot_data.append([sub[col].sum() for col in feature_cols]) # 转成 numpy 数组方便画堆叠图 plot_data np.array(plot_data) fig, ax plt.subplots(figsize(12, 6)) bottom np.zeros(len(feature_cols)) for i, g in enumerate(groups): ax.barh( list(all_options), plot_data[i], leftbottom, labelstr(g) ) bottom plot_data[i] ax.set_xlabel(选择人数) ax.set_title(不同使用时长用户的功能偏好分布) ax.legend(title使用时长) plt.tight_layout() plt.savefig(output/multi_choice_stack.png, dpi200)这段用了barh横向条形图而不是纵向因为选项文本通常较长横排放得下。leftbottom是堆叠的核心逻辑每次循环把当前分组的计数累加到bottom上下一组就从上次的顶部继续画。dpi200让导出图清晰度足够进报告。5.3 导出报告的关键中文字体嵌入与图片尺寸图表画完要合并进报告。如果直接用plt.show()看一眼就完事后面做 PPT 时还得重新跑脚本。我的习惯是把所有图统一savefig到output/目录并用bbox_inchestight去掉边缘多余空白。Word 或 PDF 嵌入图片时如果不显示中文多半是保存图片时没有把字体嵌入——这时要确认是不是画图时用了非 TrueType 字体或者在导出 PDF 时选择嵌入所有字体。plt.savefig( output/cross_satisfaction.png, dpi200, bbox_inchestight, facecolorwhite )facecolorwhite是给图片一个白底防止透明背景拖进深色模板的报告里变成黑底图。bbox_inchestight会自动裁掉四周空白但注意它会让图片尺寸变得不可预期如果你的报告模板对图片尺寸有精确约束宁可不用这个参数手工调figsize来做。5.4 写 Excel 报告时保留数字格式统计结果写回 Excel 时很多人直接to_excel但默认行为会把长数字变成科学计数法。问卷数据的样本编号、卡方值、p 值都有不同的展示精度要求需要逐列设置格式。用 pandas 自带的ExcelWriter配合 openpyxl 引擎可以给每一列定制数字格式。from openpyxl.utils.dataframe import dataframe_to_rows from openpyxl.styles import Font, PatternFill output_path output/survey_stats_report.xlsx with pd.ExcelWriter(output_path, engineopenpyxl) as writer: stat_df.to_excel(writer, sheet_name单题频次, indexTrue) cross_ratio.to_excel(writer, sheet_name交叉分析, indexTrue) ws writer.sheets[单题频次] ws[B2].number_format 0.0这段是 openpyxl 和 pandas 混用的典型做法pandas 负责写数据openpyxl 负责做最后的格式微调。number_format 0.0是保留一位小数的 Excel 数字格式。实际报告里我还会给占比列加条件格式色阶让阅读者一眼看到高低分布但这属于锦上添花核心是把数值语义说清楚。6. 避坑手册问卷统计脚本里五个高频翻车现场6.1 读 Excel 时报错源文件里有多余的空表头或合并单元格现象pd.read_excel读进来 DataFrame 里的列名全是 Unnamed: 0、Unnamed: 1普通列名的列反而没有值。原因问卷平台的导出文件在第一行往往不是表头而是问卷标题或说明文字真正的表头在第二行。还有情况是平台把表头做了合并单元格pandas 解析合并单元格时只有左上角有值。解决pd.read_excel(..., header1)指定跳过前若干行或者读进来后手动用df.columns df.iloc[0]重新赋值列名再drop掉这一行。我一般会先 Excel 里看一眼文件长什么样再决定 header 参数。6.2 数字被读成字符串百分比计算全是 TypeError现象计算占比时抛异常或者结果全是 0。原因Excel 单元格里部分是文本格式的伪数字pandas 读进来后整列变成了字符串类型astype(float)转类型时遇上了空格或中文单位直接炸。解决读取时指定dtype把该列读成字符串然后统一 remove 掉空格、百分号等杂质再做pd.to_numeric错误用errorscoerce变成 NaN。df[q5_satisfaction] pd.to_numeric( df[q5_satisfaction].astype(str).str.replace(%, ).str.strip(), errorscoerce )6.3 多选题拆分后样本量对不上有人一个选项都没选现象多选题所有选项的频次之和小于总样本数或者大于总样本数。原因小于总样本数是因为有人这题跳过了拆出来后列表为空所有子列全是 0大于总样本数是因为题干的限定条件没搞清楚比如“最多选三项”脚本已经超过三项了还在数。解决统计前先看每行的选项个数分布超过限定值的做截断或标记为“异常填写”。我做统计时会单独存一份“多选题校验表”列出选项个数异常的行号给抽样复核用。6.4 百分比小数位太多报告里全是 34.5763849%现象表格和图表里的百分比显示成 67.8323418%报告阅读体验极差。原因所有计算都是 float 精度没做 rounding。解决统一在统计阶段就round(1)而不是最后展示时再round。展示时再处理最容易出现图表已经从 DataFrame 里取了原始值的情况两处不一致会让人觉得报告是拼出来的。6.5 保存中文字体报错图表在本地正常发给别人就变方块现象本机跑出来的图中文正常同一个脚本在另一台机器上跑中文全变方框。原因脚本里硬编码了字体路径或字体名比如font.sans-serif写死了“Microsoft YaHei”目标机器没装这个字体就整体 fallback 到默认字体了。解决用第一节里的字体自动检测逻辑找不到中文字体就直接报错并中止运行好过生成一堆废图。后来我做成了习惯把字体检测写在脚本入口处跑任何报告之前先验证环境完整性减少跨机器交付的沟通成本。7. 进阶技巧把统计脚本改造成可配置的小工具一次跑完全部问卷现在这份问卷统计脚本已经能跑通单次流程了但它还是一次性脚本。实际工作中问卷不止一份下个月换一批题目代码里硬编码的列名又得改一遍。要做成一个可配置的小工具核心思路是把“题目标题 → 列别名 → 统计类型”这三者的映射关系抽到一个配置文件里主脚本只负责读配置并调用统计函数。常见做法是每个函数接收一个 task 字典task 定义了这个题目的列名、类型单选、多选、开放、选项列表、是否参与交叉分析等元信息。统计主循环根据 type 分发到不同处理函数输出统一写到 output 目录下。这样新问卷进来只需要改配置文件不需要动统计代码。import json CONFIG_PATH config/survey_config.json def load_config(pathCONFIG_PATH): with open(path, r, encodingutf-8) as f: config json.load(f) return config def dispatch_question(col_alias, q_type, df): if q_type single: return single_stat(df, col_alias) elif q_type multi: return multi_stat(df, col_alias) elif q_type open: return open_stat(df, col_alias) else: raise ValueError(f未知题目类型: {q_type})JSON 配置文件里每个题目定义了alias、type、options等字段脚本启动时用json.load读出配置再传给dispatch_question去分发处理。这个方式改造之后换问卷的时间成本从半小时降到五分钟。验证方法是拿上一份旧问卷的结果跟手工整理的 Excel 做一次全量对比关注每个数字的小数位和空值处理是否一致。从那以后我每次接新的问卷需求都强制先跑一套全流程读原始文件、检查列名、跑统计脚本、核对关键百分比、看图是否乱码全部通过才往外给结论。这套流程多跑几遍之后踩坑率明显降下来数据质量的底气也就有了。希望这些实现细节和踩坑记录能让你少走点弯路早点把报表和图表跑顺。本文还有配套的精品资源点击获取

相关新闻

线性代数教材精读:场景化学习与Python验证指南

线性代数教材精读:场景化学习与Python验证指南

简介:《Linear Algebra with Applications》第十版是Steven J. Leon与Lisette de Pillis合著的线性代数经典教材,全球版由Pearson出版,在计算机革命背景下已成为比肩微积分的数学核心课程。PDF电子书完整收录全书8章共556页,覆盖线…

2026/10/17 23:14:08 阅读更多 →
油猴脚本实战:零服务器抓取知乎内容,从原理到导出全流程

油猴脚本实战:零服务器抓取知乎内容,从原理到导出全流程

提到“爬取知乎内容”,很多人的第一反应是上爬虫框架、搞代理池、维护登录态,整套东西下来没有两三天跑不通。但如果你只是想把自己某个问题下的回答、收藏夹里的内容、某个用户的高赞回答保存成本地资料,其实有个轻量得多的路子——油猴脚本…

2026/10/17 23:14:08 阅读更多 →
高速ADC系统功率缩放:功耗优化的实战方法与性能平衡

高速ADC系统功率缩放:功耗优化的实战方法与性能平衡

刚拿到这套评估套件的时候,我对 ADC 的功耗管理其实没有太多概念,脑子里默认就是“芯片标多少功耗就是多少,跟配置关系不大”。结果第一次按默认配置上电,手一摸芯片表面,烫得我赶紧断电。这时候我才意识到&#xff0c…

2026/10/17 23:13:07 阅读更多 →

最新新闻

AstronRPA:企业级RPA与AI Agent融合的自动化底座

AstronRPA:企业级RPA与AI Agent融合的自动化底座

1. 项目概述:这不是又一个“RPA套壳AI”的玩具,而是一套能进产线的自动化底座AstronRPA——科大讯飞开源的企业级 RPA AI Agent 自动化平台。这名字里藏着三重信息:Astron(天体/星辰),暗示其架构具备可伸缩…

2026/10/18 0:00:55 阅读更多 →
前端JS反混淆五步流程:从AST解析到代码还原实战

前端JS反混淆五步流程:从AST解析到代码还原实战

干前端时间久了,谁手里没几条特别“难啃”的JS脚本:压缩成一行,变量全是_0x开头,字符串是一串十六进制,还裹着好几层立即执行函数。真正想读的时候,可读性比乱码好不到哪里去。所谓 JavaScript 反混淆&…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
Unity桌面透明窗口方案:壁纸背景与真透明两种实现路线

Unity桌面透明窗口方案:壁纸背景与真透明两种实现路线

最近接了个桌面悬浮面板的小项目,需求一句话就能说清:做一个跑在 Windows 桌面上的 Unity 程序,窗口背景要透明,桌面壁纸要从软件背景里透出来。听起来好像并不复杂,但 Unity 默认的 Player 窗口天生就是一块不透明矩形…

2026/10/17 23:59:54 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →