揭秘Pandas中drop轴参数:axis 0和1到底该怎么用?

pandas数据清洗:drop函数案例详解、dropna函数案例详解、drop_duplicates函数案例详解 pandas数据清洗:drop函数、dropna函数、drop_duplicates函数详解1 drop函数简介1.1 构建学习数据1.2 删除行两种方法1.3 删除列两种方法2 dropna函数简介2.1 构建学习数据2.2 删除空值3种方法3 drop_duplicates函数简介3.1 构建学习数据3.2 去重方法3.3 reset_index函数重新设置索引 1 drop函数简介 drop函数:用来删除数据表格中的列数据或行数据 df.drop(labels=None,axis=0 阅读详情

第一章:Pandas中drop轴参数的核心概念

在Pandas数据处理过程中,`drop`方法是删除行或列的重要工具。其核心在于理解`axis`参数的含义与作用。该参数决定了操作的方向:`axis=0`表示沿行方向操作(即删除行),`axis=1`表示沿列方向操作(即删除列)。

axis参数的基本取值与行为

  • axis=0:默认值,表示按索引(行)删除数据
  • axis=1:表示按列名删除数据
例如,以下代码展示了如何使用`axis`参数删除指定行和列:
# 导入pandas库
import pandas as pd

# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}, index=['x', 'y', 'z'])

# 删除行标签为'y'的行
df_row_dropped = df.drop('y', axis=0)

# 删除列名为'B'的列
df_col_dropped = df.drop('B', axis=1)
上述代码中,`axis=0`使`drop`方法在索引方向上查找匹配项,而`axis=1`则在列名中查找目标进行删除。

axis参数的替代写法

Pandas也支持字符串形式的`axis`值,提高代码可读性:
  • axis='index' 等价于 axis=0
  • axis='columns' 等价于 axis=1
axis值方向操作对象
0 或 'index'垂直方向行(索引)
1 或 'columns'水平方向列(字段)
正确理解`axis`参数有助于避免数据误删,并提升代码清晰度。

第二章:深入理解axis参数的理论基础

2.1 axis参数在Pandas中的设计哲学

Pandas中的axis参数体现了对数据对齐与操作方向的抽象思考。它不直接描述物理维度,而是定义计算沿着哪个轴进行。

axis的语义解析
  • axis=0:沿行方向操作,即对每一列进行聚合(如求和、均值)
  • axis=1:沿列方向操作,即对每一行进行计算
代码示例与逻辑分析
import pandas as pd
df = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'])
print(df.mean(axis=0))  # 输出每列的均值:A: 2.0, B: 3.0
print(df.mean(axis=1))  # 输出每行的均值:0: 1.5, 1: 3.5

上述代码中,axis=0表示“跨行聚合”,即垂直方向压缩;axis=1表示“跨列聚合”,即水平方向压缩。这种设计保持了NumPy兼容性,同时强化了标签对齐的思想。

2.2 axis=0与axis=1的数学维度解析

在多维数组操作中,`axis=0` 和 `axis=1` 表示不同的计算方向。`axis=0` 指沿行方向(纵向)操作,即对每一列进行聚合;`axis=1` 指沿列方向(横向)操作,即对每一行进行聚合。
NumPy中的轴概念示例
import numpy as np
arr = np.array([[1, 2], [3, 4]])
print(np.sum(arr, axis=0))  # 输出: [4 6]
print(np.sum(arr, axis=1))  # 输出: [3 7]
上述代码中,`axis=0` 对每列求和(第一列 1+3=4,第二列 2+4=6),而 `axis=1` 对每行求和(第一行 1+2=3,第二行 3+4=7)。
维度对照表
axis方向操作对象
0垂直列
1水平行

2.3 数据结构视角下的轴含义(Series与DataFrame)

在Pandas中,轴(axis)是理解数据操作方向的核心概念。对于Series而言,其为一维结构,仅存在单一轴(axis=0),表示沿索引方向进行计算。
DataFrame中的双轴模型
DataFrame作为二维结构,引入了两个轴:
  • axis=0:沿行方向操作,即对每一列的数据进行聚合或变换;
  • axis=1:沿列方向操作,即对每一行的数据进行处理。
import pandas as pd
df = pd.DataFrame({
    'A': [1, 2],
    'B': [3, 4]
})
print(df.sum(axis=0))  # 输出每列的和:A=3, B=7
print(df.sum(axis=1))  # 输出每行的和:0=4, 1=6
上述代码中,axis=0 表示按列聚合,结果返回每个字段的总和;而 axis=1 则对每行元素求和,体现横向计算逻辑。这种设计统一了高维数据的操作语义。

2.4 广播机制与axis的协同工作原理

在NumPy等数组计算库中,广播机制(Broadcasting)允许不同形状的数组进行算术运算。其核心在于沿指定axis自动扩展维度,实现元素级操作。
广播的基本规则
  • 从尾部维度向前对齐,缺失维度视为1
  • 若维度大小相等或其中一方为1,则兼容
  • 不兼容时触发ValueError
与axis的协同示例
import numpy as np
A = np.random.rand(4, 1, 5)  # 形状 (4,1,5)
B = np.random.rand(      5)  # 形状 (5,)
C = A + B  # B沿axis=0和axis=1广播至(4,1,5)
在此例中,B的形状在axis=0和axis=1方向被自动扩展,匹配A的结构。广播机制通过识别每个axis上的尺寸兼容性,决定是否复制数据以完成运算,从而高效实现跨维度计算。

2.5 常见误解与认知纠偏

误解:微服务一定优于单体架构
许多开发者认为微服务是技术演进的终极方向,实则不然。微服务适用于复杂业务解耦,但会引入分布式事务、网络延迟等问题。对于中小型系统,单体架构在开发效率和运维成本上更具优势。
误解:缓存能解决所有性能问题
缓存确实可提升响应速度,但不当使用会导致数据不一致。例如以下代码:

// 错误示例:先更新数据库,再删除缓存
db.Update(user)
cache.Delete("user:" + user.ID)
若第二步失败,缓存将长期不一致。应采用“双写一致性”策略或使用消息队列异步同步。
  • 微服务适合高并发、大团队协作场景
  • 缓存命中率低于60%时,需重新评估缓存策略
  • 数据库索引并非越多越好,写入性能会显著下降

第三章:axis=0的实际应用场景

3.1 按行删除缺失数据的实战技巧

在数据清洗过程中,按行删除缺失值是提升数据质量的关键步骤。合理使用删除策略可有效避免后续建模中的偏差。
基础删除方法
Pandas 提供了 dropna() 方法,支持灵活配置删除条件:
import pandas as pd
df_cleaned = df.dropna(axis=0, how='any', inplace=False)
其中,axis=0 表示按行操作,how='any' 指只要存在缺失值即删除该行。若设为 'all',则仅当整行全为空时才删除。
高级筛选策略
可通过设置阈值保留部分缺失的数据行:
df_filtered = df.dropna(thresh=len(df.columns)-2)
此代码表示每行至少保留非空值数量为总列数减2,允许最多2个缺失值存在。
  • 适用场景:适用于缺失比例较低的行数据
  • 性能建议:大数据集建议先采样分析缺失分布

3.2 清理异常样本与冗余记录

在数据预处理阶段,清理异常样本与冗余记录是保障模型训练质量的关键步骤。异常值可能源于采集错误或系统噪声,而重复记录则会导致模型过拟合。
识别并移除异常样本
常用方法包括Z-score检测和IQR(四分位距)法。以下为基于Pandas的IQR实现:

import pandas as pd
import numpy as np

def remove_outliers_iqr(df, column):
    Q1 = df[column].quantile(0.25)
    Q3 = df[column].quantile(0.75)
    IQR = Q3 - Q1
    lower_bound = Q1 - 1.5 * IQR
    upper_bound = Q3 + 1.5 * IQR
    return df[(df[column] >= lower_bound) & (df[column] <= upper_bound)]
该函数通过计算目标列的上下界过滤异常值,适用于连续型变量分布调整。
消除冗余记录
使用Pandas的drop_duplicates()方法可高效去除重复行:
  • subset:指定去重依据的列名
  • keep:保留首条('first')、末条('last')或删除全部(False)
  • inplace:是否修改原DataFrame

3.3 动态条件筛选与行过滤策略

在数据处理流程中,动态条件筛选是实现高效行过滤的核心机制。通过运行时解析表达式,系统可灵活控制数据流的通断。
基于表达式的行过滤
使用表达式引擎对每行数据进行谓词判断,仅保留满足条件的记录:
// 示例:Golang 中的行过滤逻辑
for _, row := range data {
    if evalCondition(row, "age > 18 && status == 'active'") {
        filtered = append(filtered, row)
    }
}
上述代码中,evalCondition 函数动态解析字符串条件,并在上下文中求值,支持运行时传参。
过滤策略配置表
字段名操作符阈值启用状态
score>=80是
regionIN["A","B"]否

第四章:axis=1的实际应用场景

4.1 删除无关或冗余特征列的工程实践

在构建机器学习模型时,去除无关或高度相关的特征列能有效提升训练效率与模型泛化能力。
识别冗余特征
可通过计算特征间的皮尔逊相关系数矩阵发现强相关特征对。通常设定阈值(如0.95),若两特征相关性超过该值,则保留其一。
特征A特征B相关性
ageyears_since_birth1.0
incomesalary0.98
代码实现示例
import pandas as pd
from sklearn.feature_selection import VarianceThreshold

# 移除低方差特征
selector = VarianceThreshold(threshold=0.01)
df_selected = selector.fit_transform(df)
上述代码通过方差阈值法过滤掉变化极小的特征列,threshold=0.01 表示仅保留方差大于0.01的特征,避免模型关注噪声。

4.2 多列批量删除的高效写法

在处理大规模数据表时,多列批量删除若采用逐列操作,将显著影响性能。高效做法是通过单条 SQL 语句合并多个字段的删除操作。
使用 ALTER TABLE 批量删除
ALTER TABLE user_info 
DROP COLUMN (middle_name, suffix, temp_data);
该写法适用于支持元组式 DROP 的数据库(如 PostgreSQL)。相比多次执行 DROP COLUMN,减少了元数据锁持有次数和日志写入开销。
兼容性处理方案
对于仅支持单列删除的数据库(如 MySQL),可采用以下顺序执行:
  • 评估各列是否被索引或外键引用
  • 按依赖关系逆序删除,避免约束冲突
  • 组合为事务内批量提交,降低网络往返延迟

4.3 结合列名匹配与正则表达式的灵活删减

在数据预处理阶段,精确控制字段的保留与剔除至关重要。通过结合列名匹配与正则表达式,可实现对复杂字段结构的动态筛选。
动态列过滤策略
利用正则表达式匹配语义相关的列名,如剔除所有包含“temp”或以“backup_”开头的字段:
import pandas as pd
import re

# 示例数据
df = pd.DataFrame({
    'user_id': [1, 2],
    'temp_data': [0.1, 0.2],
    'backup_name': ['a', 'b'],
    'email': ['x@y.com', 'z@w.com']
})

# 定义过滤模式
pattern = r'^(backup_)|temp'
columns_to_drop = [col for col in df.columns if re.search(pattern, col, re.I)]
df_clean = df.drop(columns=columns_to_drop)
上述代码中,re.search 对列名进行模糊匹配,re.I 启用忽略大小写模式。最终通过 drop 方法实现列的批量移除,提升数据清洗的灵活性与可维护性。

4.4 特征预处理中的列选择与优化

在特征工程中,列选择是提升模型效率与性能的关键步骤。通过剔除冗余、无关或高缺失率的特征,可显著降低维度灾难风险。
常用列选择策略
  • 方差阈值法:移除低方差特征,认为其对模型区分能力贡献小;
  • 相关性分析:过滤与目标变量相关性弱的特征;
  • 基于模型的重要性评分:如树模型输出的 feature importance。
代码示例:使用 sklearn 进行方差筛选
from sklearn.feature_selection import VarianceThreshold

# 初始化选择器,阈值设为0.01
selector = VarianceThreshold(threshold=0.01)
X_reduced = selector.fit_transform(X)
上述代码移除所有方差低于 0.01 的列。VarianceThreshold 不依赖目标变量,适用于无监督场景,常作为预处理第一步。
特征优化流程图
输入数据 → 缺失率分析 → 方差过滤 → 相关性筛选 → 模型重要性排序 → 输出优化特征集

第五章:总结与最佳实践建议

性能监控与调优策略
在高并发系统中,持续的性能监控是保障稳定性的关键。建议集成 Prometheus 与 Grafana 构建可视化监控体系,实时追踪服务响应时间、GC 频率和内存使用。
  • 定期执行压力测试,识别瓶颈点
  • 设置告警规则,如 CPU 使用率超过 80% 持续 5 分钟触发通知
  • 使用 pprof 分析 Go 服务运行时性能
代码质量保障机制
采用静态分析工具提升代码健壮性。以下为 CI 流程中推荐的检查步骤:

// 示例:使用 go vet 和 golint 进行代码检查
go vet ./...
golint -set_exit_status ./...
staticcheck ./...
确保每次提交都通过自动化检查,避免低级错误进入生产环境。
微服务部署规范
组件资源请求限制备注
API Gateway500m CPU, 512Mi RAM1 CPU, 1Gi RAM启用 HPA 自动扩缩容
User Service200m CPU, 256Mi RAM500m CPU, 512Mi RAM配置就绪与存活探针
安全加固措施
流程图:用户请求 → API 网关 → JWT 鉴权 → 服务网格 → 后端服务
关键节点:
- 所有外部请求必须携带有效 Token
- 内部通信启用 mTLS 加密
- 敏感操作记录审计日志
Modin加速Pandas原理与实战:1行代码实现多核并行的底层机制 Modin是一种面向现代多核CPU的pandas执行引擎重构方案,其核心在于保持pandas完全兼容API的前提下,通过分区式DataFrame内存布局、查询计划重写器和后端无关调度器三大技术,突破Python GIL限制,实现计算负载的自动并行化。它并非简单封装,而是对pandas底层执行路径的深度替代,适用于ETL流水线、BI预计算、特征工程等中大规模(1GB–50GB)数据处理场景。相比Dask DataFrame或Polars等全新API框架,Modin的最大技术价值在于零业务逻辑改造即可获得2–4 阅读详情

相关推荐

Pandas Series和DataFrame本质解析:从报错到直觉的跨越

Series和DataFrame是Pandas最核心的数据结构,其设计远不止于‘表格’或‘一列数据’——Series本质是带标签的一维数组,运算默认按索引对齐;DataFrame则是共享索引的Series字典,行操作实为索引视图。理解这一物理结构,才能规避ValueError、SettingWithCopyWarning等高频报错,掌握.loc/.iloc差异、向量化计算与内存优化逻辑。技术价值在于建立可迁移的数据操作直觉:面对筛选、合并、分组等需求,能自主判断结构选型与方法路径。典型应用场景包括电商退货率

429

【pandas】drop()函数详解

【pandas】drop()函数详解

wzk4869的博客 1万+

Pandas实战:用TED演讲数据培养数据直觉与分析思维

Pandas不仅是数据处理工具,更是构建数据认知和业务洞察的思维引擎。其核心价值在于将原始数据转化为可解释、可决策的信息结构——通过数据清洗理解噪声本质,借助groupby与agg揭示分布规律,利用cut和explode实现业务语义分层,再以pivot_table和多维交叉验证驱动归因分析。在真实场景如TED演讲分析中,Pandas帮助我们识别长尾分布、处理混合时间格式、解析嵌套标签、建模主讲人累积效应,并完成标题文本的轻量级NLP探索。这些能力共同支撑起从‘能跑通代码’到‘敢定义问题’的关键跃迁,适用于内

mxdxm8899的专栏 428

pandas中drop用法_如何使用drop方法对数据进行删减处理

在我们进行数据分析时,某些情况下我们会需要对数据作出一系列的删减处理。今天就为大家推荐一下在Python中常用于数据删减的drop方法。在Pandas 中,以 .drop 开头的方法都与数据的删减有关。下面我们先简单说一下drop的用法及一些主要参数:drop函数:drop(labels, axis=0, level=None, inplace=False, errors='raise')关于参数...

weixin_39928993的博客 1万+

Pandas多维聚合与滚动计算实战:银行风控BI生产指南

多维聚合是数据分析中将原始数据按多个业务维度(如区域、时间、客户等级)分组并计算统计指标的核心技术;其底层原理涉及索引对齐、内存布局优化与分组键哈希策略,技术价值在于支撑高并发、低延迟的实时风控与BI报表生成;典型应用场景包括银行交易趋势监控、保险客户分层建模、支付平台异常检测等;本文聚焦pandas在金融级生产环境中的四大关键能力:多维聚合、滚动计算、自定义逻辑、结果展平,结合真实风控案例详解性能调优与NaN治理。

weixin_30512043的博客 416

Python量化回测实战:揭秘网络热门“跌停板战法”的真实表现

量化回测是金融工程领域的核心方法,它通过历史数据模拟交易策略,以评估其潜在表现与风险。其基本原理在于构建一个严谨的、避免前视偏差和幸存者偏差的数据驱动框架,从而客观验证投资逻辑的有效性。这项技术的核心价值在于,它能将主观的交易想法转化为可验证、可复现的客观结果,帮助投资者在复杂的市场环境中建立科学的决策体系。在量化投资实践中,回测被广泛应用于策略研发、风险管理和绩效评估等场景。本文将以网络热门的“跌停板战法”为例,深入探讨如何利用Python工具链,从数据获取、信号定义到绩效分析,完整地构建一个回测流程,并

weixin_34248487的博客 308

pandas的drop()中axis取值简便记忆法

一直对drop中axis的取值与其代表的含义感到疑惑,网上有很多文章对axis取0或1时,删除方向进行过解释,大多都侧重于具体删除时的执行方向,今天玩代码突然发现,drop里axis取0或1其实是……df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], columns=["a", "b", "c", "d"]) &gt;&gt;...

Scrat000的博客 1万+

分类评估指标实战指南:从混淆矩阵到业务决策

分类评估指标是机器学习模型落地的核心诊断工具,而非简单公式套用。其底层逻辑源于混淆矩阵(TP/FP/FN/TN),由此衍生出准确率、精确率、召回率、F1分数、ROC-AUC等关键指标。在类别不平衡(如欺诈检测、疾病筛查)场景下,单一准确率极易失真,必须结合业务代价权衡精确率与召回率的博弈关系。F1分数作为调和平均提供综合视角,而ROC-AUC则刻画模型在全阈值范围内的判别潜力。技术价值在于将抽象预测转化为可解释、可优化、可对齐业务目标的决策依据,广泛应用于风控、推荐、医疗、安全等高敏感领域。

weixin_34025051的博客 389

Pandas 中的 drop() 函数详解

drop()是 Pandas DataFrame 和 Series 的通用函数,用于按标签(Label)或索引(Index)删除数据。axis=0,任务常用写法删除单行df.drop(1)删除多行删除单列或删除多列忽略不存在标签原地修改drop()是 Pandas 数据清洗中最常用、最灵活的删除函数,操作并不复杂,记住常用参数即可。

经天纬地,格物致理 2170

AI量化投资开源平台——Qlib(微矿)的学习使用笔记(随缘更新)

Qlib 涵盖了量化投资的全过程,为用户的 AI 算法提供了高性能的底层基础架构,从框架设计上让用户可以更容易地应用 AI 算法来辅助解决量化投资的各个关键问题(例如 Alpha 预测,风险预测,市场动态性建模)。本文旨在记录一些面向初学者的基础内容。

in_void的博客 3133

数据安全实战技能解析:从加密攻防到数字水印的竞赛指南

数据安全是信息安全领域的核心,其基础在于密码学与信息隐藏技术。密码学通过加密算法(如AES、RSA)和哈希函数,保障数据的机密性与完整性,其原理涉及对称/非对称加密、工作模式及密钥管理。数字水印技术则基于信号处理(如DCT/DWT变换),将信息嵌入多媒体载体,用于版权保护与溯源。这些技术的价值在于为数据全生命周期提供“防泄漏”与“可追溯”的解决方案,广泛应用于企业数据治理、合规审计和**数据防泄漏(DLP)** 系统。本文以一场贴近实战的**数据安全职业技能竞赛**为切入点,深入剖析如何运用密码分析、磁盘取

weixin_34314962的博客 402

揭秘Pandas drop函数:99%的人都忽略的关键参数与陷阱

掌握Pandas按行/列删除数据(drop)的正确用法,避开常见错误。详解axis、inplace等关键参数在不同场景的应用技巧,提升数据清洗效率。理解底层逻辑,避免误删数据,值得收藏。

ByteChat的博客 820

CCS TMSC6748 报错Error connecting to the target: (Error -600 @ 0x0)

CCS TMSC6748 报错Error connecting to the target:(Error -600@ 0x0)

AS_the_deer1717的博客 6636

揭秘Pandas中drop函数的inplace参数:90%新手都踩过的坑

掌握Pandas drop的inplace参数用法,避免数据修改无效的常见错误。详解其在原地修改与返回副本间的区别,适用于数据清洗与内存优化场景,提升代码效率。正确使用可节省内存并确保操作生效,90%新手易忽略的关键细节,值得收藏。

IterLoom的博客 468

【01、Go与VSCode的安装】

小白学Go语言

wangruil的博客 1536

【即插即用模块】卷积篇 | TCSVT 2025 | MFACB:多尺度膨胀融合,快速扩大感受野,多尺度特征精准捕捉!

本文提出了一种新型多尺度融合膨胀卷积模块MFACB,用于增强语义分割任务中的特征表达能力。该模块通过三分支串联膨胀卷积结构快速扩大感受野,采用双路径融合机制(基础信息路径+多尺度信息路径)实现高效上下文聚合。相比传统卷积块,MFACB在保持轻量化的同时显著提升了多尺度特征捕捉能力,实验表明其性能优于基础残差块。该模块支持自定义膨胀率和步长调整,可灵活嵌入不同网络阶段,适用于需要特征增强的视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 311

Pandas drop操作性能优化全攻略(inplace参数使用场景大揭秘)

掌握Pandas drop操作性能优化秘诀,深入解析Pandas drop的inplace参数适用场景与内存效率提升技巧。对比原地修改与返回副本的差异,详解大数据处理中的最佳实践方案,显著提升运行效率,值得收藏。

VarPerch的博客 303

CLASSB类移植(满足IEC 60730-1和60355-1标准)

针对软件认证需要满足IEC 60730-1和60335-1标准,ST公司专门提供的软件扩展包X-CUBE-CLASSB,它包含自测库和文档,支持多种STM32系列芯片,通过预集成测试库和标准化流程,帮助开发者快速满足国际安全标准,适用于家电、工业控制等高可靠性场景。ClassB软件包程序检测内容分为两个主要部分:启动时的自检和运行时的周期自检,MCU在上电的时候会进行复位启动,在启动完成以后会进行运行自检。

m0_61973119的博客 1402

Pandas中drop(inplace=True)究竟节省了什么?真相令人震惊:

掌握Pandas drop的inplace参数,避免内存浪费与数据丢失。详解inplace=True在原地修改数据的优势,适用于大数据集节省内存的场景,对比False的返回副本机制,揭示其对数据操作效率的影响,值得收藏。

SimCompile的博客 315

芒果YOLOv5改进05:损失函数IoU 篇之Repulsion Loss:原创改进损失函数 Repulsion:解决目标遮挡场景下检测,为解决密集人群检测中遮挡设计的损失函数,打造高效检测器涨点

YOLOv5改进代码实践|结合Repulsion 解决目标遮挡场景下检测🚀

包括YOLOv5、YOLOv7、YOLOv8等模型改进 4565

深度解析:LPDDR5 采样 Mask 背后的秘密 —— 从 Jitter 到 BER 全面剖析

在 LPDDR5 中,CK/DQS 信号相当于“指挥棒”,而数据(DQ)要在时钟节拍里被准确采样。Crosspoint Mask 区域横轴:时间 (Time)纵轴:电压 (Vref)👉 只要采样点落在这个区域内,数据就是正确的。否则就会出错。BERPBERPMask 就像高速公路的收费站口,如果车(采样点🚗)在车道内,顺利通过;一旦跑偏,就撞护栏。LPDDR5 的速率极高,UI 非常短,Mask 区域成为核心指标各种 Jitter、Noise 会不断压缩 Mask。

weixin_43199439的博客 354

数据分析:数据处理篇2

问题数据的处理

weixin_54929649的博客 1438

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

20个真正快的Pandas向量化方法实测指南

Pandas数据处理性能瓶颈往往源于Python循环和低效API调用。其核心加速原理在于底层C/Fortran实现的向量化运算,通过避免逐元素解释执行、利用SIMD指令与内存连续访问,可实现数倍至百倍提速。技术价值体现在ETL清洗、实时特征工程与大规模报表生成等典型场景中,显著降低CPU占用与内存抖动。本文聚焦真实生产环境验证的高效实践,涵盖布尔索引筛选、.str.字符串向量化操作、数值clip/round/pct_change等内置C加速函数,以及链式调用与内存友好的drop_duplicates、ass

dianqi0560的博客 300

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

数据建模前必查的5个关键统计量实战指南

在机器学习与数据分析中,数值型特征的分布特性直接决定模型稳定性与泛化能力。均值、中位数、标准差、四分位距(IQR)和偏度这五大统计量构成基础分布诊断的核心框架:均值与中位数的偏离揭示异常敏感性,IQR界定鲁棒的正常区间,偏度预判长尾区域的预测误差放大风险。它们共同支撑特征缩放、缺失值填充、目标变量变换及模型选型等关键决策。本文聚焦工业级落地场景——从电商订单金额右偏处理、IoT设备告警边界设定,到电池健康度(SOH)预测中的sqrt变换实践,强调统计量必须成组解读、联动判断。掌握这组‘决策触发器’,是避免R

hwpokay的专栏 344

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

多维聚合中的数据变形术:从立方体建模到语义变形

多维聚合是现代数据分析的核心能力,其本质是在时间、地域、品类等多维坐标系中对数据进行切片、旋转、上卷等空间化操作。它超越传统GROUP BY的扁平分组逻辑,强调坐标系完整性、语义一致性与计算路径优化。关键技术包括交叉表(crosstab)的边际控制、窗口函数的动态范围定义、Pandas的transform组内标准化,以及SQL中CUBE/ROLLUP的维度剪枝。在电商、金融、供应链等场景中,正确实施多维聚合可支撑同比环比、占比归一、滚动统计等高阶分析需求,并为BI工具和决策引擎提供语义清晰、结构健壮的数据底

weixin_33714884的博客 356

语音转录变翻译?利用whisper-tiny.en多语言令牌实现英文音频跨语言翻译

whisper-tiny.en 是 OpenAI Whisper 系列中最轻量的**英文语音转录**模型,被转换为 ONNX 权重后可在浏览器中通过 Transformers.js 直接运行。很多人不知道:它的词表里其实内置了 `<|zh|>`、`<|de|>` 等上百个**多语言令牌**,配合 `<|translate|>` 翻译令牌,可以让英文音频的转录结果直接输出为中文等其它语言——这就是本

gitblog_00315的博客 650
上一篇: 从入门到精通:Scrapy ItemLoader处理器的7步进阶之路
下一篇: 【Python高效编程实战】:掌握get默认值类型的5种正确用法
QuickSolve
博客等级 码龄1年 137粉丝 2015原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值