这10个小技巧,让你的Python数据分析加速50%!

一些Python代码加速工具! 可以使用 Python 代码的字符串的多行特性,可以使其他的代码按照自身的风格来进行排版。先说 NumPy,它的核心是一个多维数字数组的实现。如果面向数组和数学计算的时候,Numba 是更好的选择导入时会自动生成相应的 LLVM 的代码。SciPy 和 Sage 都将 NumPy 内置为自身的一部分,同时内置了其他的不同的工具,从而可以用于特定科学、数学和高性能计算的模块。这篇文章主要讲优化单处理器的代码,下面会介绍一些一些高效的函数实现,也有已经封装好的拓展模块,还包括速度更快的 Python 解释器。 阅读详情

来自公众号:优达学城Udacity

作者:Parul Pandey,译者:欧剃,编辑:肉松

原文链接:https://towardsdatascience.com/10-simple-hacks-to-speed-up-your-data-analysis-in-python-ec18c6396e6b

在编程的世界里,有时候一些小窍门和小技巧,能帮你节省不少时间和生命。有时可能是一个不起眼的快捷操作,或者一个小小的插件。希望今天分享的这 10 个超级实用的 Python 数据分析技巧,可以“撬动”你的生产力!

■ 1 对 pandas 数据表进行预览分析(Profiling)

预览分析 是一个能帮助我们理解数据的过程。Pandas Profiling 这个 Python 库就是专门用来进行预览分析的,它能让你简单而快速地对 Pandas 数据表进行探索性数据分析(Exploratory Data Analysis,缩写 EDA)。在 EDA 的第一步,我们往往会用到 pandas 的 df.describe() 和 df.info() 函数,但它们只给出非常基本的数据概况,在处理大型数据集的时候能起到的帮助十分有限。

另一方面,使用 Pandas Profiling 提供的 df.profile_report() 函数,你只需要一行代码就能快速生成一个包含了大量详细信息的交互式 HTML 报告。

对于给出的某个具体数据集,Pandas Profiling 库能计算出以下这些统计信息:

安装

pip install pandas-profiling

或

conda install -c anaconda pandas-profiling

使用

让我们用泰坦尼克号乘客的老古董数据集来举个栗子:

要在 Jupyter notebook 里显示数据预览分析的结果,你只需要这么一行代码就够了。生成的结果相当详细,包含了各种你可能会需要的图表。

你还可以用这样的代码把结果导出成一个交互式 HTML 文件:

你可以在这个库的官方文档(链接见文末)中查询到更详细的用法和实例代码。

■ 2 创建可交互的 Pandas 图表

Pandas 库已经为数据表(DataFrame 类)内置了一个 .plot() 的绘图函数。然而,用这个函数生成的可视化结果并不支持交互,也就没那么引人瞩目。而另一方面,pandas.DataFrame.plot() 函数生成图表的便利性也是无可取代的。

那么,我们能不能在不对代码进行太多修改的情况下,用 Pandas 绘制出交互式图表呢?事实上,你可以通过 Cufflinks 库来实现这个目的。

安装

安装 cufflinks 前,要先安装它依赖的 Plotly 库:

使用

还是以泰坦尼克号数据集为例,用这一行代码演示一下黑魔法:

df.iplot()

(df.iplot() 和 df.plot() 的对比)

比起下图的静态图表,上图的交互式图表能显示出更详细的信息,而这一切并不需要太多的语法变化。

你可以在官方示例(链接见文末)中看到更详细的例子。

■ 3 来一点“魔法” 

Jupyter Notebooks 中的“魔法命令”是一系列便捷的函数,用于解决标准数据分析时的一些常见问题。你可以用 %lsmagic 命令来列出所有的“魔法命令”。

(所有可用的“魔法命令”的列表)

魔法命令又分成两类,一种是行魔法,前缀为单个 % 字符,只作用于单行代码;另一种是 单元格魔法,以 %% 为前缀,能作用于整个单元格。如果 Notebook 的 Automagic 选项设置为 1 ,你可以省略单行魔法命令的前缀 %。

让我们看看几个在通常的数据分析中十分有用的命令吧。

%pastebin

%pastebin 命令将一段代码上传到 Pastebin 上,并返回对应的链接。Pastebin 是一个在线剪贴板分享服务,用户可以在上面存储各种纯文本内容(比如代码片段),然后将对应的链接分享给其他人。事实上 Github gist 也是一个类似 pastbin 的服务,只不过它带有版本控制功能。

假设有一个 python 脚本文件 file.py,内容如下:

然后在 Jupyter Notebook 里用 %pastebin 生成一个分享链接:

%matplotlib notebook

%matplotlib inline 命令会让静态的 matplotlib 图表在 Jupyter notebook 的运行结果区域内显示。如果你把命令中的 inline 换成 notebook,你还能轻松获得一个可缩放和调整大小的图表。你应当在导入 matplotlib 库之前先运行 %matplotlib 命令。

(%matplotlib inline 和 %matplotlib notebook 的对比)

%run

%run 命令可以在 notebook 中运行外部 python 脚本:

%run file.py

%%writefile

%%writefile 能将一个单元格的内容保存成文件。下面这段代码就会被写入 foo.py 文件中,并保存在当前目录下。

%%latex

%%latex 命令让你可以用 LaTeX 语法渲染单元格的内容。在编写数学公式和方程的时候很好用。

■ 4 排查代码错误

其实交互式调试器(interactive debugger)本身也是一个魔法命令,但我把它单独拿出来说。

如果你在运行一个代码单元格的时候出现了异常,你可以新起一行,运行 %debug 命令。这将打开一个交互式的调试环境,把你带到异常发生的位置。你可以在此检查程序中各个变量的值,并执行各种操作。输入 q 退出调试器。

■ 5 美化 print 输出

如果你想为数据结构生成美观的输出信息,pprint 就是首选的模块。它在输出字典对象或 JSON 数据的时候特别有用。下面是一个用 print 和 pprint 输出信息的例子:

■ 6 显示醒目的注释

在 Jupyter Notebooks 中,你可以用警告/注释框来高亮显示一些重要或需要注意的信息。注释框的颜色取决于你指定的“警告”类型。你可以在需要的地方试试下面几种代码:

蓝色框:提示

<div class="alertalert-block alert-info">
<b>提示:</b> 使用蓝色提示框(属性为alert-info)来显示提示和注释。
如果是注释,则可以省略上面的“提示”字样。
</div>

黄色框:示例

<div class="alertalert-block alert-warning">
<b>示例:</b> 使用黄色提示框(属性为alert-warning)来显示额外的示例或数学公式。
</div>

绿色框:相关

<div class="alert alert-block alert-success">
绿色提示框(属性为alert-success)一般只在必要的时候使用,来显示和内容相关的链接等。
</div>

红色框:警告

<div class="alert alert-block alert-danger">
<b>警告:</b> 红色提示框(属性为alert-danger)一般不常用,不过可以用在警告用户不要删除一些重要代码等情况。
</div>

下面是几种提示的运行效果:

■ 7 把一个单元格中的所有输出都显示出来

假设有一个Jupyter Notebook 的单元格里,有这样一段代码:

对代码单元格来说,通常只输出单元格最后一个表达式的结果。如果需要显示其他表达式的结果,则需要手动加上 print() 函数。不过,也可以通过在 notebook 的开头运行这样一段代码,让单元格显示所有表达式的结果:

再运行下,就会发现所有表达式的值都被依次打印出来了:

要恢复成默认设置,可以用:

■ 8 使用 '-i' 参数运行 python 脚本

运行一个 Python 脚本的典型做法是在命令行下输入 python hello.py。然而,如果你多加一个 -i 参数,也就是用 python -i hello.py 来运行脚本,会带来一些额外的好处:

首先,当程序运行结束,或是异常退出的时候,python 解释器并不会被关闭。在这种情况下,我们可以检查变量的值,核对函数是否正常工作等。

其次,既然解释器还在,我们可以很容易地调用 Python 调试器来排查问题:

这将会带我们到程序出错的地方,方便我们检查并修改代码。

■ 9 自动注释掉当前行

在编辑器中按下 Ctrl + /(Mac用户是 ⌘ + /)快捷键,可以自动注释掉光标所在的行。再按一次取消注释。

■ 10 手残误删,这样能救

你是否也曾不小心误删了 Jupyter Notebook 中的某个单元格?记住这个快捷键,你还有救:

如果你是不小心删除了单元格中的一部分内容,可以用 Ctrl + Z 快捷键(Mac 用户是 ⌘ + Z)撤销。

如果你需要恢复整个被删除的单元格,请按 ESC+Z,或在菜单上选择编辑(EDIT)-> 撤销删除(Undo Delete Cells)

这些技巧,在日常使用 Python 和 Jupyter Notebooks 进行数据分析的时候都会经常用到。希望它们也能让你更快更高效地完成数据分析工作。如果你有更加黑科技的数据分析技巧,欢迎在下面留言分享鸭。

------end------

win10系统python下实现dlib的GPU加速 上篇文章:python调用Dlib做人脸识别(https://blog.youkuaiyun.com/luckyfairy17/article/details/83822583)存在人脸识别实效性不好的问题,因为pip install dlib默认是安装没有GPU加速支持的dlib 因此,需要重新配置环境,实现GPU加速,以提高实效性 参考:https://blog.youkuaiyun.com/Mrxxyz/art... 阅读详情

相关推荐

30 个 Python 技巧,加速你的数据分析处理速度

一天不学心痒痒,一星期不学....就是真不学了

xff123456_的博客 2608

[新手必看] 17个常见的Python运行时错误

点击上方“菜鸟学Python”,选择“置顶或者星标”第一时间收到精彩推送!来源:开源中国链接:https://www.oschina.net/question/89...

cainiao_python的博客 641

python数据分析一周速成1.先从查询开始吧

众所周知,20%的知识点可以覆盖80%的使用场景。时间就是生命~~咱主打一个“用最小的成本,收获最大化”!快跟我来,感受python的效率~~

weixin_44856107的博客 1749

latex 符号_sympy: 符号运算-1

本文主要参考资料来自sympy的官网:Introduction - SymPy 1.4 documentation​docs.sympy.org一般,我们使用计算机软件进行数学计算,主要是数值计算,就算有变量,也是代入具体数值来算的,我们在初中到大学学到的符号计算,很多时候无法用计算机来进行,比如下面的多项式化简: 上面的式中没有任何一个具体数值,完全是符号进行计算,这时我们只能手算了。当然,我们...

weixin_39813263的博客 1326

python-latex-highlighting, 用于 python 突出显示的LaTeX 样式.zip

python-latex-highlighting, 用于 python 突出显示的LaTeX 样式 在 LaTeX 中突出显示 python用于 LaTeX的简单 python 突出显示样式。软件包由以下行加载:usepackage{pythonhighlight}然后,可以在代码中直接使用以下代码包含 python 代码

深入解析安卓/Linux固件:从DTB到DTS的反编译实战

本文详细介绍了如何从安卓/Linux设备固件中提取并反编译DTB文件,将其转换为可读的DTS源码。通过实战步骤,包括拆解boot.img、处理resource.img以及使用dtc工具,帮助开发者深入理解设备硬件配置,为固件定制、驱动调试和系统移植提供关键支持。

weixin_29274337的博客 339

Debian系统安装latex

1. 前言 Debian系统安装latex相对简单,只需要输入几个命令即可,这里记录,供大家参考 2. 安装 (1)安装texlive latex 终端输入: sudo apt-get install texlive-latex-base 过程输入Y (2) 安装cjk 终端输入: sudo apt-get install latex-cjk-chinese (3) 安装中文字体 终端输入: sudo apt-get install latex-cjk-chinese-arph

xyu2_的博客 1085

瑞萨单片机,把CS文件转换为CC

1、打开CC的软件: 点击坐上角的"START" 点击"Create New Project"的"GO": 导入工程: 如下图设置后,点击"Create" 2、进入到CC的开发界面: 可以看到原启动库文件以asm文件的方式直接出现在工程中: 删除新生成的main.c,保留导入的r_main.c(以你自己的代码为准): 注意添加所有的头文件路径: 点击"...

weixin_37611121的博客 1228

latex表格制作_用MarkDown和Python编写LaTex

前一段时间承包了西电爱数社数学竞赛试题模版的编写,但是用LaTex编写很多复杂的操作都很不方便,尤其是是要用变量的话,虽然LaTex是原生支持的,但是使用起来跟一般编程语言还是差太多了,于是我寻找了一下用编程编写LaTex的方法,就发现了Pylatex。大概总结了下它相对于一般LaTex编写的优势。结构比latex清晰。可以使用编程的逻辑写论文。可以使用Python里面很多优雅的操作。表格、图等东...

weixin_39935319的博客 498

EMC意义下的共模(Common Mode)和差模(Differential Mode)

在电子产品中,信号或电源通过两根导线传输。对比维度差模(DM)共模(CM)电流方向一进一出,相等相反同向、相等回流路径两根导线组成的闭合回路地或外壳EMC影响较小容易辐射干扰,重点治理类型定义有用信号干扰信号抑制方法常规滤波器、电感、电容共模电感、磁环、屏蔽、接地技术等。

weixin_43199439的博客 1244

最新Python爬虫实战(入门爬虫篇)——案例20:某股票数据采集(详细爬虫思路截图+抓包动图演示+完整爬虫代码+详细注释)

本次案例针对某股票行情网的静态HTML页面,实现了全市场股票数据的全自动化爬取,覆盖了从抓包分析、请求模拟、数据解析到数据存储的完整爬虫流程,非常适合入门学习者巩固基础,核心知识点和实现要点总结如下:首先是页面分析的核心逻辑,静态HTML页面的数据爬取,核心在于通过浏览器开发者工具,完成完整的抓包分析和标签结构定位。我们不需要像动态页面那样找隐藏的API接口,只需要确认数据在主文档的HTML源码中,然后通过元素选择器,精准找到每个字段对应的标签,总结出统一的标签结构规律,就能实现批量数据提取。

努力让自己发光,对的人才能迎着光而来 19万+

Python设置Latex公式中显示数学字体STIX

python中设置latex格式的公式可以解决公式输入的问题,但总觉得不够美观,这里通过更改公式的渲染字体,设置为STIX字体,下面为python输入logistics函数的一段代码: 1. code import matplotlib.pyplot as plt import numpy as np # 设置公式字体 from matplotlib import rcParams config = { "font.family":'serif', "font.size": 20

繁星似海的博客 5338

基于Python的新闻聚合与推荐系统:抓取多新闻网站内容并根据用户兴趣进行个性化推荐

本文介绍了如何使用Python构建一个新闻聚合与推荐系统,涵盖了从新闻数据抓取、用户兴趣建模到推荐算法实现的全过程。通过爬虫技术抓取新闻网站内容,使用TF-IDF、Word2Vec等算法进行内容分析,并通过推荐算法向用户推送个性化的新闻,最终帮助用户快速获取自己感兴趣的信息。你可以根据具体需求,进一步扩展和优化系统。例如,加入更多的推荐算法、优化爬虫的抓取效率、增强前端展示的互动性等。通过本文的指导,您应该能够构建一个完整的新闻聚合与推荐系统,并为用户提供个性化的新闻推荐服务。

2201_76125261的博客 1513

数据分析从业者必看,10 个加速 python 数据分析的简单的小技巧

一些小的技巧在编程领域可能会非常有用,在数据科学领域同样如此。数据科学爱好者 Parul Pandey 在近日发表了一篇博文,分享了在数据科学中非常实用的 10 个小技巧。AI 科技评论将他的文章编译整理如下。 有时候,一点小小的黑客行为可以节省时间,挽救生命。一个小小的快捷方式或附加组件有时会被证明是天赐之物,并且可以真正提高生产力。所以,下面是我最喜欢的一些技巧,我以本文的形式一起使用和编译...

AI 研习社的博客 456

【STM32项目】基于stm32智能鱼缸控制系统的设计与实现(完整工程资料源码)

随着现代化经济的快速发展,物质条件富足的人开始追求精神富足,越来越多的人通过饲养观赏鱼来充实生活、释放压力,但并非所有饲养者都有时间和经验来管理好鱼缸。一种由单片机控制,可实时检测和调节鱼缸环境,可把鱼缸环境实时反映给用户并能被用户远程操控的系统,可以解决养鱼成活率低、耗费时间和精力、参与感不强等诸多难题。

嵌入式技术开发 7351

ubuntu20.04搭建QGC4.2编译环境

QGC 4.2ubuntu18.04也可以编译QGC4.2,但是由于GLBC版本较低,无法使用最新版的QTCreator,Ubuntu20.04可以使用最新版QTCreator。

超维空间科技的博客 1万+

数据分析从业者必看!10 个加速 python 数据分析的简易小技巧

文章发布于公号【数智物语】(ID:decision_engine),关注公号不错过每一篇干货。 来源 |AI开发者(id:okweiwu) 作者 |skura 有时候,一点小小的黑客行为可以节省时间,挽救生命。一个小小的快捷方式或附加组件有时会被证明是天赐之物,并且可以真正提高生产力。所以,下面是我最喜欢的一些技巧,我以本文的形式一起...

数智物语 855

BLDC控制实验:方波、霍尔、开环、定速、正转

本文记录博主学习BLDC控制软件的过程。 文章目录1 概述2 软件架构及工具链2.1 软件架构2.2 工具链3 底层代码生成3.1 时钟配置3.2 按键输入配置 1 概述 本文是博主第一次做BLDC控制实验,目的仅仅是写代码让BLDC转起来,而暂时不考虑其他复杂的需求。 控制的方法是比较简单的六步换相法。利用电机内部的霍尔传感器,通过参考电机厂家给出的二二导通换相表,生成方波来控制电机。第一次实验为了简化需求,只考虑开环、定速、正转的情况: 开环:不考虑速度反馈,直接给PWM让电机转起来; 定速:不考虑速

u013288925的博客 1万+

df添加一行 python_10 个加速Python数据分析的简单的小技巧

一些小的技巧在编程领域可能会非常有用,在数据科学领域同样如此。数据科学爱好者 Parul Pandey 在近日发表了一篇博文,分享了在数据科学中非常实用的 10 个小技巧。1.Profiling the pandas dataframeProfiling 是一个帮助我们理解数据的程序,而 Pandas Profiling 正是实现这一点的一个 python 包。这是对 pandas 数据帧进行探索...

weixin_29479087的博客 246

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

深度学习工具包 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")

10 个加速 python 数据分析的简单的小技巧

作者:Parul Pandey 来源:SQL数据库开发 一些小的技巧在编程领域可能会非常有用,在数据科学领域同样如此。数据科学爱好者 Parul Pandey 在近日发表了一篇博文,分享了在数据科学中非常实用的 10 个小技巧。 有时候,一点小小的黑客行为可以节省时间,挽救生命。一个小小的快捷方式或附加组件有时会被证明是天赐之物,并且可以真正提高生产力。所以,下面是我最喜欢的一些技巧,我以本文的形式一起使用和编译它们。其中,有些可能是相当有名的,有些可能是新的,但我相信下次您从事数据分析项目...

CDA数据分析师 206

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

python加速数据处理_使用Python加速数据分析的10个小技巧

本文列举了一些使用Python和Jupyter Notebook的技巧,讨论了如何轻松分析数据以及如何进行格式化编码、输出和调试等操作。作者:读芯术在编程领域,有时一个小技巧就能节省大量时间,甚至能起到救命的效果。这些“必杀技”往往能在未来的数据分析中发挥重大作用。1. 分析Pandas数据框架Profiling(分析)是一个帮助理解数据的过程,Pandas Profiling(数据预览分析)作为...

weixin_29190169的博客 301

python latex显示不出来_10 个加速Python数据分析的简单的小技巧

一些小的技巧在编程领域可能会非常有用,在数据科学领域同样如此。数据科学爱好者 Parul Pandey 在近日发表了一篇博文,分享了在数据科学中非常实用的 10 个小技巧。1.Profiling the pandas dataframeProfiling 是一个帮助我们理解数据的程序,而 Pandas Profiling 正是实现这一点的一个 python 包。这是对 pandas 数据帧进行探索...

weixin_39934296的博客 149

推荐收藏!数据分析必会的 10 个 python 库!

大家好,今天给大家分享除了基本的 NumPy、Pandas 和 Matplotlib 之外的 10个流行的数据分析 Python 库。

Python数据挖掘 5248

pandas添加一行数据_数据分析从业者必看,10 个加速 python 数据分析的简单的小技巧...

一些小的技巧在编程领域可能会非常有用,在数据科学领域同样如此。数据科学爱好者 Parul Pandey 在近日发表了一篇博文,分享了在数据科学中非常实用的 10 个小技巧。AI 科技评论将他的文章编译整理如下。有时候,一点小小的黑客行为可以节省时间,挽救生命。一个小小的快捷方式或附加组件有时会被证明是天赐之物,并且可以真正提高生产力。所以,下面是我最喜欢的一些技巧,我以本文的形式一起使用和编译它们...

weixin_39569389的博客 279

numba加速Python实战:布尔运算速度再提50%

做大数据、机器学习特征工程、位图索引的同学应该都遇到过布尔数组内存爆炸的问题:- 1亿个用户标记,用Python list存要800MB+,GC直接卡爆- 用numpy bool数组,也要100MB,数据量再大一点还是顶不住- 用普通位数组,内存是省了,但读写性能拉胯,API还反人类今天给大家开源我刚写的bool-hybrid-array,完美解决这个痛点:✅ 内存占用:1亿布尔值仅需8-15MB,比numpy省85%-92%✅ 性能:随机读写比numpy快30%,顺序读写快2倍✅ 易用性:100%兼容Py

BKsell的博客 200

玩转Python-Windows 10下pip加速300%之秘籍

玩转Python-Windows 10下pip加速300%之秘籍 Python 安装包时默认会到pypi去下载包所需的文件,这个当然是????蜗牛慢了. 可以为pip配置默认使用国内阿里源来下载包,那速度是300%提升都不止呢。 找到pip在Windows下的配置文件 pip -v config list 注意命令行里面的 -v 哦 pip -v config list For variant 'gl...

嵌哥 254
上一篇: 百度网盘突然大调整,网友炸了!!
下一篇: 用“讲故事”的方式,带你认识Python编码问题的起源和发展!
Wang_AI
博客等级 码龄12年 988粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值