安利3个被程序员夸爆的Python编程小功能

Python016

安利3个被程序员夸爆的Python编程小功能,第1张

随着数据挖掘分析在企业业务层面的深度应用,我们会发现,在实际业务场景中,数据分析工作已经逐渐分为2个层次;较为流程化但与业务深度结合的数据分析工作,会更倾向于让业务人员通过专业分析工具进行自主 探索 分析,比如我们的Tempo大数据分析平台,就可以通过拖拽式、智能化的简便操作,帮助业务人员快速上手数据分析工作,快速将业务数据价值变现。

而针对一些更加细致、专业化的建模分析需求,其实还是通过代码的方式去实现更加高效灵活。Tempo大数据分析平台正是考虑到广大专业数据分析人员的实际需求,专门开发了 【扩展编程】 这一功能模块,让自定义编程和平台中已有的节点结合使用,快速提高数据分析工作效率!

为了让广大数据分析师在Tempo平台中,既可以通过编程实现更加灵活的建模,也能避免原生Python编程的一些使用局限,我们还通过广泛的用户调研,在【扩展编程】模块设计了 3个提高Python编程易用性的小功能 ,下面我们一起来看看这三个功能都具体解决了哪些问题~

1、Python洞察不直观 ,分析结果可读性低

我们常说“一图胜千言”,对于数据分析工作来说更是如此。分析结果最终还是要直接赋能实际业务,由于Python代码行的形式让分析结果可读性极低,分析人员无法快速实现对数据的直观 探索 分析,导致整体工作效率的降低。

2、Python调试分析难 ,校验调试流程多,反复折腾易出错

调试和分析是Python开发中非常重要的环节,但代码 校验报错结果难查看 的问题,让很多数据分析人员大伤脑筋。

尤其是现在很多企业数据分析项目是在自己的数据平台中进行的,分析人员只能把平台中的代码复制到第三方平台中进行校验,调试好后再粘贴回平台中运行,非常麻烦。

3、Python运行总“缺包” ,写码大半天,报错一瞬间

在一般的企业数据分析项目中,预先有可能会设置有多套Python环境,版本并不统一。这就会导致分析人员常常并不清楚自己当前使用的到底是哪一套Python环境,在编码时引用的Python包,在不同的Python环境上运行很有可能会出现缺失,引起代码执行报错,而且这种错误信息并不好排查,一旦报错只能从头再来,让程序员们白白做了无用功。

以往专业数据分析人员遇到以上问题,只能选择用更多的时间和精力去修复bug,那么在我们的Tempo大数据分析平台之中,又是如何解决这些问题,让 Python编程的应用 更简便、更高效、更适应企业实际需求呢?

1、图形化洞察,快速 探索 数据价值

针对传统编码数据分析方式难以直观展示数据分析结果的缺点,Tempo大数据分析平台——扩展编程模块特别支持在代码区域设置 通过matplotlib/seabron等图形方法实现节点洞察 ,校验通过后,就可以直接在洞察区域中查看绘制的图形,比如:折线图、直方图、条形图、饼图等。

以后业务部门简单的可视化分析需求就可以直接在建模挖掘分析的同时快速产出,立等可取,无需再周转其他可视化分析工具,大大提高的数据价值变现的效率。

2、控制台,让调试分析更便捷

针对传统Python编程调试报错信息不好查看的问题, Tempo大数据分析平台—扩展编程模块中的控制台功能,可以 直接在指定区域中显示错误信息和代码中需要print的部分 ,便于使用者快速发现问题,立即调整代码。

除了帮助专业数据分析人员提高工作效率,控制台中的【示例】小模块还内置了常用的参考代码,可以帮助一些不太能熟练应用Python编程语言的小白用户,通过复用或小部分修改逻辑代码的方式,也能快速完成数据逻辑处理工作。用好这个功能,团队内部的技能培训也能更有章法了呢!

3、快速查询Python环境和包版本,事前预防,再也不怕“丢包缺包”

Python编程最怕丢包缺包问题,在Tempo大数据分析平台中,我们内置了Python环境版本和包版本的信息查询组件,分析人员在编码之前,可以预先查询一下当前的Python环境版本和包版本,如果发现有缺包就可以在编码工作开始之前补充安装,把“丢包缺包”造成的代码报错风险降到最低。

今天的Tempo小课堂中,小T主要给大家介绍了如何通过Python扩展编程的三个小功能,帮助代码偏好的专业数据分析人员减少不必要的麻烦操作,提高工作效率。

python的cmd模块为命令行应用提供了强大的支持:

#!/usr/bin/env python

# coding: utf-8

from cmd import Cmd

class Degree(Cmd):

    STUDENTS = {}

    def do_enter(self, cmdln):

        """Enter a student's name and degree for create or modify"""

        ln = cmdln or raw_input("Enter Student's name and degree: ")

        student, degree = ln.split(" ")

        self.STUDENTS[student] = int(degree)

    def do_delete(self, cmdln):

        """Enter a student's name for delete"""

        student = cmdln or raw_input("Enter Student's name for delete: ")

        if student in self.STUDENTS:

            del self.STUDENTS[student]

    def do_list(self, cmdln):

        """List Students Name-Degree"""

        for student, degree in sorted(self.STUDENTS.items()):

            print student, degree

    def do_compute(self, cmdln):

        """Compute degrees' averange data"""

        avg = sum(self.STUDENTS.values())/len(self.STUDENTS)

        print "Avg: {avg}".format(avg=avg)

    def do_quit(self, cmdln):

        """Leave ths application."""

        return 1

if __name__ == "__main__":

    degreemgr = Degree()

    degreemgr.cmdloop()

"""

help

tim@crunchbangtime:~/workspace/baidu$ python qa_cmd.py 

(Cmd) ?

Documented commands (type help <topic>):

========================================

compute  delete  enter  help  list  quit

(Cmd) ? enter

Enter a student's name and degree for create or modify

(Cmd) help list

List Students Name-Degree

(Cmd) 

(Cmd) enter Tim 93

(Cmd) enter Bruce 38

(Cmd) enter

Enter Student's name and degree: Bruce 88

(Cmd) enter Hans 89

(Cmd) enter Bill 94

(Cmd) 

(Cmd) list

Bill 94

Bruce 88

Hans 89

Tim 93

(Cmd) delete Bill

(Cmd) list

Bruce 88

Hans 89

Tim 93

(Cmd) compute

Avg: 90

(Cmd) quit

tim@crunchbangtime:~/workspace/baidu$ 

"""

import re

f=open('user.txt','r')

text=f.read()

f.close()

tofind=raw_input("please input yo want to find:")

tofind=re.escape(tofind)

result=re.findall(".*"+tofind+".*",text)

for line in result: print line