7件事,让你快速提高数据分析能力

开发 前端 新闻
想让自己的数据分析能力更上一层楼吗?本文可以帮助你形成一个“每日加速提升数据分析能力清单”。

想让自己的数据分析能力更上一层楼吗?本文可以帮助你形成一个“每日加速提升数据分析能力清单”。

[[281449]]

#1: Pandas Profiling

这一工具的优点显而易见。以下动画是使用df.profile_report()这一简单方法的结果。请自行观看成果展示;

7件事,让你快速提高数据分析能力

使用此工具只需安装和导入Pandas Profiling程序包即可。

#2: 使用Cufflinks和Plotly绘制Panda数据

大多所谓的“经验丰富的”数据科学家或数据分析师都对matplotlib和 pandas的协同非常熟悉。也就是说,他们可以通过使用.plot()函数快速绘制pd.DataFrame或pd.Series图像。

7件事,让你快速提高数据分析能力

有点无聊是吧?

现在就好了。如何做一个交互型全景式可缩放的图像呢?Cufflinks 可以做到!(由 Plotly提供)

在系统中安装Cufflinks即可! 快速安装Cufflinks ——在自己最喜欢的终端进行更新即可。可以观看以下动画:

7件事,让你快速提高数据分析能力

好多了!

注意,唯一会改变以上结果的是对Cufflinks输入并设置cf.go_offline() 函数。其余的只是把.plot()改成.iplot()。

其他像.scatter_matrix()这样的函数会带来不错的可视化图像:

7件事,让你快速提高数据分析能力

酷毙了!

希望从事大量数据可视化工作的朋友都看一看有关的Cufflinks和Plotly内容,从中可以找到大量方法!

#3: IPython Magic Commands

IPython 的Magics本质上就是IPython堆叠在Python语法顶端的一系列加强功能。Magic commands有两种:其一为line magics,用%作为前缀表示,在一行输入的代码上运行;而 cell magics用%%作为前缀表示,在多行输入的代码上运行。以下是Magics的一些实用函数:

%lsmagic: 应有尽有。

不妨先尝试一些传统却好用的方法。如果只记得一条Magic Command,估计就是它了。执行%lsmagic将会出现所有可用的Magic Commands列表:

7件事,让你快速提高数据分析能力

%debug: 交互程序调试

这估计是Magic Command使用频次最高的了。

大多人都试过:程序员执行一个代码块,而这个代码块一直出错。绝望中的程序员为了输出每一变量的内容,写下20 print()一类代码。然后当程序员终于修复了问题时,就不得不回过头删除所有列出的函数。

然而现在不用了!只需在遇到问题的时候执行%debug,就可以执行任意一部分代码了:

7件事,让你快速提高数据分析能力

那么,总结一下以上内容:

1. 有一个函数,它将一个列表作为输入,并平方所有偶数。

2. 运行函数,某处出现错误。但无法找到错误。

3. 出错时把%debug命令标记到函数中。

4. 让调试程序显示x以及type(x)的值。

5. 由此找到了错误:6被当作了一行字符串!

可以想象,这一命令对更多更复杂的函数都大有用处!

%store: 在notebooks间互传变量

这个命令也很棒。首先说一说起因。程序员花时间清理了notebook中的一些数据,现在要测试另一notebook中的一些函数,因此既需要在同一notebook中实现函数功能,又要将其放到另一notebook中。用%store只要存储变量,并在任一notebook中检索即可:


%store [variable]存储变量。

%store -r [variable]阅读/检索已存储的变量。

%who: 罗列所有变量。

是否曾将某个值赋到一个变量上但忘了变量名称?是否不小心删除了赋值给变量的单元格?有了%who,就可以获得所有已赋值的变量:


%%time: 魔法定时。

有了这个命令,就可以获得一切所需的定时信息。只要将%%time应用到任何一段可执行的代码中,就可以获得如下输出:

7件事,让你快速提高数据分析能力

24微秒。马马虎虎吧。

%%writefile: 将单元格内容编辑到文档。

这是本文的最后一个命令。当已经在notebook中写了一些复杂的函数或其类别,而想要将其从notebook中分离存到文件中去时,这个命令非常有用。只需为函数或其类别添加前置%%writefile,然后添加文件名储存即可:

7件事,让你快速提高数据分析能力

如图所示,可以直接将创建的函数储存到 “utils.py” 文件夹中,以任意形式导入函数即可。在其他notebook中也是这样!(只要都在utils.py文件夹的同一个目录中)

#4: Jupyter中的绚丽格式

这个非常棒!基本上,Jupyter允许在markdown单元格中设置一些HTML / CSS格式。这是一些常用的:

忧郁而时髦的:

  1. <div class="alert alert-block alert-info"
  2.  
  3. This is <b>fancy</b>! 
  4.  
  5. </div> 

热血而稍显痛苦的:

  1. <div class="alert alert-block alert-danger"
  2.  
  3. This is <b>baaaaad</b>! 
  4.  
  5. </div> 

青涩而平静的: 

  1. <div class="alert alert-block alert-success"
  2.  
  3. This is <b>gooood</b>! 
  4.  
  5. </div> 

此处为操作动画:

7件事,让你快速提高数据分析能力

当要以notebook形式展示成果时,这些命令非常有用!

#5: Jupyter的快捷键

学习了键盘快捷键后,可以使用命令面板:Ctrl + Shift + P。这一操作可以直接唤起notebook中的函数列表。以下为部分基础命令:

Esc: 使用这一快捷键可直接切换到命令模式。这也是用方向键在notebook中导航的方式。

处于命令模式时:

• A和B:键入新单元格,上移([A]bove)或下移([B]elow)现有单元格。

• M: 将现有单元格markdown( [M]arkdown)。

• Y: 将现有单元格改为代码。

• D,D:确认删除 ([D]efinetly [D]eletes)现有单元格。

Enter: 对现有单元格进行返回编辑模式的操作。

处于编辑模式时:

• Shift + Tab:给键入现有单元格的目标显示Docstring (文档字符串) —— 长按快捷键切换文档模式。

• Ctrl + Shift + -:将现有单元格从光标停留处分离。

• Esc + F:查找替换不含输出的代码。

• Esc + O:切换单元格输出。

选择多个单元格:

• Shift + Down和Shift + Up: 向下或向上选择下一个单元格。个人认为可以使用演绎法进行判别。

• Shift + M: 合并选中的单元格。

• 请注意,一旦单元格被选中,则可以批量删除/复制/粘贴/运行。

#6: Jupyter (或IPython)每一单元格的多种输出

这个也不错。是否曾经想显示pandas数据帧(DataFrame)的the .head()和 the .tail()?但是却半途而废,因为要创建一个额外的代码单元格去运行.tail() ,这太麻烦了。别再害怕了,现在使用下列代码可以显示所有想要的输出:

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

看,多个输出的实力在此:


小菜一碟

#7:不断扩充自己的Jupyter notebook

使用 RISE,就可以将Jupyter Notebook陆续转化为幻灯片形式。最棒的是,notebook仍是可用的,所以可以实现文稿演示的同时实时编码!

根据个人系统环境,通过conda或者pip都可以安装 RISE以使用该工具:

conda install -c conda-forge rise

/// OR ///

pip install RISE

现在就可以点击新按钮从notebook中创建演示文稿了:

7件事,让你快速提高数据分析能力

 

责任编辑:华轩 来源: 今日头条
相关推荐

2016-10-26 19:33:45

数据分析大数据

2016-06-02 10:39:29

数据分析数据管理数据处理

2009-07-17 14:02:20

程序员编程效率

2021-04-15 08:04:27

容器DevOps程序

2010-03-19 08:45:20

Windows Pho

2020-04-24 13:40:09

边缘计算开发数据中心

2020-04-24 12:06:08

边缘计算数据中心

2017-02-05 14:39:12

2020-05-27 10:46:49

Kubernetes容器云计算

2015-08-14 14:46:47

软件开发

2015-08-14 16:39:59

软件开发老板

2018-08-23 08:21:54

TensorFlow机器学习人工智能

2016-11-17 08:25:03

CentOS内核服务器

2010-09-02 18:56:09

NoSQL数据库DBA

2015-04-21 11:33:37

JavaJava垃圾回收

2016-08-22 23:56:48

超融合HCI

2018-05-04 10:48:07

Kubernetes容器K8S

2016-12-09 09:02:00

KDE Plasma

2015-09-18 08:47:41

新手程序员

2020-12-31 23:38:33

AIOpsIT运营
点赞
收藏

51CTO技术栈公众号