精华内容
下载资源
问答
  • Python是一个很酷的语言,因为你可以在很短的时间内利用很少的代码做很多事情。不仅如此,它还能轻松地支持多任务,比如多进程等。Python批评者有时会说Python执行缓慢。本文将尝试介绍6个技巧,可加速你的Python...

    Python是一个很酷的语言,因为你可以在很短的时间内利用很少的代码做很多事情。不仅如此,它还能轻松地支持多任务,比如多进程等。Python批评者有时会说Python执行缓慢。本文将尝试介绍6个技巧,可加速你的Python应用程序。

    1.让关键代码依赖于外部包

    虽然Python让许多编程任务变得容易,但它可能并不总能为紧急的任务提供最佳性能。你可以为紧急的任务使用C、C++或机器语言编写的外部包,这样可以提高应用程序的性能。这些包都是不能跨平台的,这意味着你需要根据你正在使用的平台,寻找合适的包。简而言之,这个方案放弃了一些应用程序的可移植性,以换取只有在特定主机上直接编程才能获得的程序性能。这里有一些你应该考虑加入到你的“性能兵工厂”的包:

    这些包以不同的方式提高性能。例如,Pyrex能够扩展Python所能做的事情,例如使用C的数据类型来让内存任务更加有效或直接。PyInIne让你在Python应用程序中直接使用C代码。程序中的内联代码单独编译,但它在利用C语言所能提供的效率的同时,也让所有的代码都在同一个地方。

    2.排序时使用键(key)

    有很多老的Python排序代码,它们在你创建一个自定义的排序时花费你的时间,但在运行时确实能加速执行排序过程。元素排序的最好方法是尽可能使用键(key)和默认的sort()排序方法。例如,考虑下面的代码:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    import operator

    somelist= [(1,5,8), (6,2,4), (9,7,5)]

    somelist.sort(key=operator.itemgetter(0))

    somelist

    #Output = [(1, 5, 8), (6, 2, 4), (9, 7, 5)]

    somelist.sort(key=operator.itemgetter(1))

    somelist

    #Output = [(6, 2, 4), (1, 5, 8), (9, 7, 5)]

    somelist.sort(key=operator.itemgetter(2))

    somelist

    #Output = [(6, 2, 4), (9, 7, 5), (1, 5, 8)],

    每一个实例中,根据你选择的作为key参数部分的索引,数组进行了排序。类似于利用数字进行排序,这种方法同样适用于利用字符串排序。

    3.优化循环

    每种编程语言都会强调需要优化循环。当使用Python的时候,你可以依靠大量的技巧使得循环运行得更快。然而,开发者经常漏掉的一个方法是:避免在一个循环中使用点操作。例如,考虑下面的代码:

    1

    2

    3

    4

    5

    6

    7

    8

    lowerlist= ['this','is','lowercase']

    upper= str.upper

    upperlist= []

    append= upperlist.append

    for wordin lowerlist:

    append(upper(word))

    print(upperlist)

    #Output = ['THIS', 'IS', 'LOWERCASE']

    每一次你调用方法str.upper,Python都会求该方法的值。然而,如果你用一个变量代替求得的值,值就变成了已知的,Python就可以更快地执行任务。优化循环的关键,是要减少Python在循环内部执行的工作量,因为Python原生的解释器在那种情况下,真的会减缓执行的速度。

    (注意:优化循环的方法有很多,这只是其中的一个。例如,许多程序员都会说,列表推导是在循环中提高执行速度的最好方式。这里的关键是,优化循环是程序取得更高的执行速度的更好方式之一。)

    4.使用较新版本的Python

    在网上搜索Python信息,都会发现无数人在问,从Python一个版本迁移到另一个版本的问题的信息。一般来说,Python的每一个版本都包含了能让其比上个版本运行更快的优化。版本迁移的限制因素是,你喜欢的那些库是否已经迁移到Python的较新版本。相比于询问是否应该进行版本迁移,关键问题是确定一个新版本什么时候有足够的支持,以保证迁移的可行性。

    你需要验证你的代码仍然运行。你需要在Python的新版本下使用你获得的新库,然后检查你的应用程序是否需要重大改变。只有在你作出必要的更正之后,你才会注意到版本之间的差别。然而,如果你正好确保你的应用程序能在新版本下运行,而不需要任何改变,你可能会错过那些版本升级带来的新特性。一旦你进行了迁移,你应该为你的新版本下的应用程序写一个说明,检查有问题的地方,并且优先考虑利用新版本的特性去更新那些地方。这样用户将会在升级的过程中更早的看到一个更大的性能提升。

    5.尝试多种编码方法

    如果每次你创建一个应用程序都是用相同的编码方法,几乎肯定会导致一些你的应用程序比它能够达到的运行效率慢的情况。作为分析过程的一部分,你可以尝试一些实验。例如,在一个字典中管理一些元素,你可以采用安全的方法确定元素是否已经存在并更新,或者你可以直接添加元素,然后作为异常处理该元素不存在情况。考虑第一个编码的例子:

    1

    2

    3

    4

    5

    6

    7

    8

    n= 16

    myDict= {}

    for iin range(0, n):

    char= 'abcd'[i%4]

    if charnot in myDict:

    myDict[char]= 0

    myDict[char]+= 1

    print(myDict)

    这段代码通常会在myDict开始为空时运行得更快。然而,当mydict通常被数据填充(或者至少大部分被充填)时,另一种方法效果更好。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    n= 16

    myDict= {}

    for iin range(0, n):

    char= 'abcd'[i%4]

    try:

    myDict[char]+= 1

    except KeyError:

    myDict[char]= 1

    print(myDict)

    两种情况下具有相同的输出:{"d': 4, "c': 4, "b': 4, "a': 4}。唯一的不同是这个输出是如何得到的。跳出固定的思维模式,创造新的编码技巧,能够帮助你利用你的应用程序获得更快的结果。

    6.交叉编译应用程序

    开发者有时会忘记,电脑实际上是不懂任何用于创建现代应用程序的语言,电脑所能懂得是机器代码。为了能在电脑上运行应用程序,你使用一个应用将人类可读的代码你转换成计算机能理解的。有时候用一种语言,比如Python,写一个应用,并用另一种语言,比如C++,运行它,从性能的角度来看是有意义的。这取决于你想要应用程序去做什么,以及主机系统可以提供的资源。

    一个有趣的交叉编译器,Nuitka,可以将你的Python代码转换为C++代码。这么做的结果是,你可以在原生模式下执行应用程序,而不是依靠解释器。根据平台和任务,你可以看到一个显著的性能提升。

    (注意:Nuitka目前还处于测试阶段,所以用它来产品程序时需要小心。实际上,目前最好将其用于实验。现在也有一些关于交叉编译是否是得到更好性能的最佳方式的讨论。开发者已经利用交叉编译好几年了,目的是实现特定的目标,比如更好的应用程序的速度。记住,每一个解决方案都会有得有失,你应该在将一个解决方案用于生产环境之前就好好考虑一下得失情况。)

    在使用一个交叉编译器时,要确保它支持你使用的Python的版本。Nuitka支持Python2.6、2.7、3.2和3.3。想让这个方案发挥作用,你需要一个Python解释器和一个C++编译器。Nuitka支持多种C++编译器,包括Microsoft Visual Studio、MinGW 和 Clang/LLVM。

    交叉编译也可能带来一些严重的负面影响。例如,当利用Nuitka工作时,你会发现即使一个小程序也能消耗很大的硬盘空间,这是因为Nuitka使用大量的动态链接库(DLLs)实现Python的功能。所以当你面对一个资源有限的系统时,这个方案可能不会很好的起作用。

    总结

    这六个技巧中的任意一个,都可以帮助你创造更快的Python程序。但任何技巧都不是万能的,不能每次都起作用。有些技巧在Python的特定版本下比其他技巧的更有效——甚至系统平台也能影响它们的效果。你需要配置你的应用,确定哪个地方让其运行缓慢,然后尝试似乎能最好的解决这些问题的一些技巧。

    展开全文
  • Python是一个很酷的语言,因为你可以在很短的时间内利用很少的代码做很多事情。不仅如此,它还能轻松地支持多任务,比如多进程等。Python批评者有时会说Python执行缓慢。本文将尝试介绍6个技巧,可加速你的Python...

    Python是一个很酷的语言,因为你可以在很短的时间内利用很少的代码做很多事情。不仅如此,它还能轻松地支持多任务,比如多进程等。Python批评者有时会说Python执行缓慢。本文将尝试介绍6个技巧,可加速你的Python应用程序。

    1.让关键代码依赖于外部包

    虽然Python让许多编程任务变得容易,但它可能并不总能为紧急的任务提供最佳性能。你可以为紧急的任务使用C、C++或机器语言编写的外部包,这样可以提高应用程序的性能。这些包都是不能跨平台的,这意味着你需要根据你正在使用的平台,寻找合适的包。简而言之,这个方案放弃了一些应用程序的可移植性,以换取只有在特定主机上直接编程才能获得的程序性能。这里有一些你应该考虑加入到你的“性能兵工厂”的包:

    这些包以不同的方式提高性能。例如,Pyrex能够扩展Python所能做的事情,例如使用C的数据类型来让内存任务更加有效或直接。PyInIne让你在Python应用程序中直接使用C代码。程序中的内联代码单独编译,但它在利用C语言所能提供的效率的同时,也让所有的代码都在同一个地方。

    2.排序时使用键(key)

    有很多老的Python排序代码,它们在你创建一个自定义的排序时花费你的时间,但在运行时确实能加速执行排序过程。元素排序的最好方法是尽可能使用键(key)和默认的sort()排序方法。例如,考虑下面的代码:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    import operator

    somelist= [(1,5,8), (6,2,4), (9,7,5)]

    somelist.sort(key=operator.itemgetter(0))

    somelist

    #Output = [(1, 5, 8), (6, 2, 4), (9, 7, 5)]

    somelist.sort(key=operator.itemgetter(1))

    somelist

    #Output = [(6, 2, 4), (1, 5, 8), (9, 7, 5)]

    somelist.sort(key=operator.itemgetter(2))

    somelist

    #Output = [(6, 2, 4), (9, 7, 5), (1, 5, 8)],

    每一个实例中,根据你选择的作为key参数部分的索引,数组进行了排序。类似于利用数字进行排序,这种方法同样适用于利用字符串排序。

    3.优化循环

    每种编程语言都会强调需要优化循环。当使用Python的时候,你可以依靠大量的技巧使得循环运行得更快。然而,开发者经常漏掉的一个方法是:避免在一个循环中使用点操作。例如,考虑下面的代码:

    1

    2

    3

    4

    5

    6

    7

    8

    lowerlist= ["this","is","lowercase"]

    upper= str.upper

    upperlist= []

    append= upperlist.append

    for wordin lowerlist:

    append(upper(word))

    print(upperlist)

    #Output = ["THIS", "IS", "LOWERCASE"]

    每一次你调用方法str.upper,Python都会求该方法的值。然而,如果你用一个变量代替求得的值,值就变成了已知的,Python就可以更快地执行任务。优化循环的关键,是要减少Python在循环内部执行的工作量,因为Python原生的解释器在那种情况下,真的会减缓执行的速度。

    (注意:优化循环的方法有很多,这只是其中的一个。例如,许多程序员都会说,列表推导是在循环中提高执行速度的最好方式。这里的关键是,优化循环是程序取得更高的执行速度的更好方式之一。)

    4.使用较新版本的Python

    在网上搜索Python信息,都会发现无数人在问,从Python一个版本迁移到另一个版本的问题的信息。一般来说,Python的每一个版本都包含了能让其比上个版本运行更快的优化。版本迁移的限制因素是,你喜欢的那些库是否已经迁移到Python的较新版本。相比于询问是否应该进行版本迁移,关键问题是确定一个新版本什么时候有足够的支持,以保证迁移的可行性。

    你需要验证你的代码仍然运行。你需要在Python的新版本下使用你获得的新库,然后检查你的应用程序是否需要重大改变。只有在你作出必要的更正之后,你才会注意到版本之间的差别。然而,如果你正好确保你的应用程序能在新版本下运行,而不需要任何改变,你可能会错过那些版本升级带来的新特性。一旦你进行了迁移,你应该为你的新版本下的应用程序写一个说明,检查有问题的地方,并且优先考虑利用新版本的特性去更新那些地方。这样用户将会在升级的过程中更早的看到一个更大的性能提升。

    5.尝试多种编码方法

    如果每次你创建一个应用程序都是用相同的编码方法,几乎肯定会导致一些你的应用程序比它能够达到的运行效率慢的情况。作为分析过程的一部分,你可以尝试一些实验。例如,在一个字典中管理一些元素,你可以采用安全的方法确定元素是否已经存在并更新,或者你可以直接添加元素,然后作为异常处理该元素不存在情况。考虑第一个编码的例子:

    1

    2

    3

    4

    5

    6

    7

    8

    n= 16

    myDict= {}

    for iin range(0, n):

    char= "abcd"[i%4]

    if charnot in myDict:

    myDict[char]= 0

    myDict[char]+= 1

    print(myDict)

    这段代码通常会在myDict开始为空时运行得更快。然而,当mydict通常被数据填充(或者至少大部分被充填)时,另一种方法效果更好。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    n= 16

    myDict= {}

    for iin range(0, n):

    char= "abcd"[i%4]

    try:

    myDict[char]+= 1

    except KeyError:

    myDict[char]= 1

    print(myDict)

    两种情况下具有相同的输出:{"d": 4, "c": 4, "b": 4, "a": 4}。唯一的不同是这个输出是如何得到的。跳出固定的思维模式,创造新的编码技巧,能够帮助你利用你的应用程序获得更快的结果。

    6.交叉编译应用程序

    开发者有时会忘记,电脑实际上是不懂任何用于创建现代应用程序的语言,电脑所能懂得是机器代码。为了能在电脑上运行应用程序,你使用一个应用将人类可读的代码你转换成计算机能理解的。有时候用一种语言,比如Python,写一个应用,并用另一种语言,比如C++,运行它,从性能的角度来看是有意义的。这取决于你想要应用程序去做什么,以及主机系统可以提供的资源。

    一个有趣的交叉编译器,Nuitka,可以将你的Python代码转换为C++代码。这么做的结果是,你可以在原生模式下执行应用程序,而不是依靠解释器。根据平台和任务,你可以看到一个显著的性能提升。

    (注意:Nuitka目前还处于测试阶段,所以用它来产品程序时需要小心。实际上,目前最好将其用于实验。现在也有一些关于交叉编译是否是得到更好性能的最佳方式的讨论。开发者已经利用交叉编译好几年了,目的是实现特定的目标,比如更好的应用程序的速度。记住,每一个解决方案都会有得有失,你应该在将一个解决方案用于生产环境之前就好好考虑一下得失情况。)

    在使用一个交叉编译器时,要确保它支持你使用的Python的版本。Nuitka支持Python2.6、2.7、3.2和3.3。想让这个方案发挥作用,你需要一个Python解释器和一个C++编译器。Nuitka支持多种C++编译器,包括Microsoft Visual Studio、MinGW 和 Clang/LLVM。

    交叉编译也可能带来一些严重的负面影响。例如,当利用Nuitka工作时,你会发现即使一个小程序也能消耗很大的硬盘空间,这是因为Nuitka使用大量的动态链接库(DLLs)实现Python的功能。所以当你面对一个资源有限的系统时,这个方案可能不会很好的起作用。

    总结

    这六个技巧中的任意一个,都可以帮助你创造更快的Python程序。但任何技巧都不是万能的,不能每次都起作用。有些技巧在Python的特定版本下比其他技巧的更有效——甚至系统平台也能影响它们的效果。你需要配置你的应用,确定哪个地方让其运行缓慢,然后尝试似乎能最好的解决这些问题的一些技巧。

    展开全文
  • 如果你对数据分析有所了解...——PythonPython有很多优点,如果你能很好的运用到工作中,会发现工作效率大大提升,涨薪也是再正常不过的事情。Python优点一:“流程可控,工作高效”举个例子,Excel做分析的过程:定...

    如果你对数据分析有所了解,一定听说过一些亲民的工具如Excel、Tableau、PowerBI等,都能成为数据分析的得力助手。但它们的不足也是显而易见的:操作繁琐,复用性差,功能相对局限单一。

    怎么解决呢?——Python

    Python有很多优点,如果你能很好的运用到工作中,会发现工作效率大大提升,涨薪也是再正常不过的事情。

    Python优点一:

    “流程可控,工作高效”

    举个例子,Excel做分析的过程:定位空值-删除空值-修改数据格式-去除异常值-公式计算-数据透视表-整理数据-插入图表-调整结果……

    繁琐的每一步都是来自鼠标点击,中间如果一步有误,很多步骤都需要重新调整,浪费大量时间。

    e70769349533

    用Excel进行简单的描述统计分析,每换一份数据都需要重新操作一遍。

    但使用Python编写每一步过程就非常方便,统一语言带来记录方法的统一。当分析过程需要修改或者复用,只需要调整设定好的参数就可以。

    e70769349533

    使用Python代码可以迅速调用数据,计算需求,并记录每一步过程,方便修改。

    如果想做出各种好看的图表,使用Python可视化类工具就可以,几行代码,省时省力,还具有交互功能。如果需要调整也只要修改代码,不用费心费力重新做图。

    e70769349533

    Python优点二:

    “工具库丰富”

    Python超高的人气带来了大量的大神,Python工具库可谓应有尽有,也为Python用途广泛打下了优秀的基础。

    拿数据分析来说,以Python可视化必知基本库matplotlib为例,光是他的官方gallery就有26个大类527个样式,无论是数量还是质量都能碾压市面上大部分同功能软件。

    e70769349533

    Python优点三:

    “小白友好,易上手”

    听到Python,大家觉得是门编程语言,很多人就会有这样的顾虑:我是非计算机相关专业出身,学习Python编程是不是跑偏啦?我花大把时间在学习计算机编程上,是不是舍本逐末?

    关于这一点大家大可不必担心。如今各行各业都需要数据分析能力,各行各业都需要Python,且Python的语法非常接近英语,对小白学习者非常友好,阅读Python代码就像在阅读文章。下面我们看一段使用Python制作词云图的代码,非常方便易懂:

    from pyecharts import WordCloud

    name = data_10['关键词'].tolist()

    value = data_10['出现频率'].tolist()

    wordcloud = WordCloud(width=1300, height=620)

    wordcloud.add("", name, value, word_size_range=[20, 100])

    wordcloud.render('./参考案例HTML/关键词统计词云图.html')

    wordcloud

    导入词云工具包——设置关键词和出现频率——设置好文字和图片的大小等参数,就能获得一张词云图:

    e70769349533

    可以看到,代码在数据分析工作中能做到更高效、丰富和自由。事实上代码不仅帮助分析,更能帮助逻辑思维。

    说了这么多,如果你不想错过Python这么好的工具,又担心自学遇到问题无处解决,现在就可以Python的学习q u n 227  -435-  450可以来了解一起进步一起学习!免费分享视频资料

    展开全文
  • 学会Python+到底能提升哪些办公效率! 马上过去的2020年,Python编程的热度可谓是持续上升? 那么,到底有没有那么神奇? 学习Python到底能给我们的办公带来哪些好处? 有没有推荐的资料? 今天,糕糕子为大家解答一下...

    学会Python+到底能提升哪些办公效率!

    马上过去的2020年,Python编程的热度可谓是持续上升?

    那么,到底有没有那么神奇?
    学习Python到底能给我们的办公带来哪些好处?
    有没有推荐的资料?
    在这里插入图片描述

    今天,糕糕子为大家解答一下这些问题。

    我将从3个方面来为大家分析Python怎样提升工作效率。

    1.[自动化控制办公软件]

    通过学习Python,可以利用办公软件提供的接口,来操作办公软件,将之前用手动操作变成代码操作。

    例子1: Word中的设置页面格式,字体,段落等

    例子2:对音频,视频的处理

    例子3: 对网页填写表单, 查询数据.[各软件间的配合]

    2.[各软件间的配合]

    例子1:可以把Excel中提取出来的数据,插入到Word中。

    例子2:可以进行Pdf的相互转换,比如word转pdf.

    例子3:可以利用一些软件的接口,用代码控制,比如调用发送电子邮件的接件,用代码发送邮件。

    3.[批量化处理 ]

    例子1:针对Word的统一排版,比如统一的页眉和页脚。当使用代码控制时,一个文档的处理没有什么优势,如果手头有1000文档,用手工和代码批量处理,这种对比就是显而易见的。

    例子2:从网络上下载文档,用代码来下载,也是显示不出什么优势,如果要下载所有文章呢?代码批量处理只是分钟的事情,而手工呢?估计会被累到哭。

    例子3:用批量化配合各软件的协同操作,比如从Excel中提数据,然后放到Word中,再转成Pdf,接着用Email发送,同时短信通知,这个过程,对于一条数据,也可能没什么。同样,如果是1000条呢?

    想要Python资料的小伙伴关猪单独call “学习”

    技多不压身
    希望大家在2021初真正get新技能,变强变优秀。

    展开全文
  • Python这两年可谓是“大火”,不仅仅是程序员,对于一些平常的职场办公问题,Python也能很好的解决,极大的解放了我们的双手,留出大量的空余时间去学习或者是干其他的事情。Python现...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • python这门编程最近可是非常火,不是俗谚有说"人生苦短,我用python”。这是有道理的,一是它相对于其他语言,更简单易上手,二是功能可大...希望通过自动办公提升工作效率、减少重复劳动的人。课程概述:Pytho...
  • 希望通过自动办公提升工作效率、减少重复劳动的人用Python自动办公,做职场高手课程概述Python自动办公课全新发布。帮不是程序员的你高效解决重复工作,做职场高手。终于可以说「Office,你已经是个成熟的软件了,该...
  • python这门编程最近可是非常火,不是俗谚有说“人生苦短,我用python”。这是有道理的,一是它相对于其他语言,更简单易上手,二是...希望通过自动办公提升工作效率、减少重复劳动的人。课程概述:Python自动办公...
  • python这门编程最近可是非常火,不是俗谚有说"人生苦短,我用python”。这是有道理的,一是它相对于其他语言,更简单易上手,二是功能可大...希望通过自动办公提升工作效率、减少重复劳动的人。课程概述:Pytho...

空空如也

空空如也

1 2 3 4 5
收藏数 84
精华内容 33
关键字:

python提升办公效率

python 订阅