• Python 开发者的 6 个必备库

    Posted by : lon.y@qq.com on 2017年11月29日

    无论你是正在使用 Python 进行快速开发,还是在为 Python 桌面应用制作原生 UI ,或者是在优化现有的 Python 代码,以下这些 Python 项目都是应该使用的。 Python 凭借其易用的特点,已经被工业界和学术界广泛采用。另一方面,Python 丰富的第三方项目——库、附加组件,和辅助的开发成果——使得 Python 语言的应用范围被不断扩大。 其中一些项目,比如 PyInstaller 和 WxPython ,为那些制作桌面应用和终

    阅读全文...

  • Python 属性查找 深入理解(Attribute Lookup)

    Posted by : lon.y@qq.com on 2017年11月28日

    在Python中,属性查找(attribute lookup)是比较复杂的,特别是涉及到描述符descriptor的时候。 在上一文章末尾,给出了一段代码,就涉及到descriptor与attribute lookup的问题。而get系列函数(__get__, __getattr__, __getattribute__) 也很容易搞晕,本文就这些问题简单总结一下。 首先,我们知道: python中一切都是对象,“everything is object”,

    阅读全文...

  • Python 性能优化

    Posted by : lon.y@qq.com on 2017年11月28日

    本文除非特殊指明,”python“都是代表CPython,即C语言实现的标准python,且本文所讨论的是版本为2.7的CPython。另外,本文会不定期更新,如果大家有一些好的想法,请在评论里面留言,我会补充到文章中去。 姊妹篇:《Python内存优化》 姊妹篇:《使用gc、objgraph干掉python内存泄露与循环引用!》 python为什么性能差: 当我们提到一门编程语言的效率时:通常有两层意思,第一是开发效率,这是对程序员而言,完成编码所需要的

    阅读全文...

  • 用 Python 实现一个大数据搜索引擎

    Posted by : lon.y@qq.com on 2017年11月26日

    搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理。 布隆过滤器 (Bloom Filter) 第一步我们先要实现一个布隆过滤器。 布隆过滤器是大数据领域的一个常见算法,它的目的是过滤掉那些不是目标的元素。也就是说如果一个要搜索的词并不存在与我的数据中,那么它可以以很快的速度返回目标不存在。 让我们看看以下布隆过滤器的代码

    阅读全文...

  • 疏而不漏:随机森林

    Posted by : lon.y@qq.com on 2017年11月25日

    一、概述 在三生万物:决策树中我们提到当决策树和装袋法(Bagging)和提升法(Boosting)结合后会成为更强大的算法,那么今天就介绍一种名叫随机森林(Random Forest)的算法,它是将决策树、装袋法以及随机特征选取结合后衍生出的一种增强型的树算法。 它有如下特点: 运行起来非常有效率,可以很容易的并行化 可以无删减的处理成千上万的输入变量,并可以评估变量的重要性 不用将数据专门分为训练集和测试集,随机森林构造完就可以得到近似的测试误差 能够

    阅读全文...

  • 差评近一半,用 Python 分析胡歌的《猎场》到底值不值得看?

    Posted by : lon.y@qq.com on 2017年11月24日

    11 月 6 日,湖南卫视已经开播被称作年度压轴的大戏“猎场”,迅速占领各大榜单,成为一部高热度的电视剧。但是在豆瓣上却形成了两极分化。截止 11 月 8 日,该剧在豆瓣上的评分为 5.7 分。相比较胡歌之前《琅琊榜》的 9.1,《伪装者》的 8.3 等来说,这一评分确实不高。有趣的是,首页的评分比例与“短评”、“剧评”的比例存在非常大的差异! 首页总评分评分两级分化严重,“差评”占主 在目前 11463 个评价中两级分化严重,“1 星”占比最高为 28.

    阅读全文...

  • Pandas初学者代码优化指南

    Posted by : lon.y@qq.com on 2017年11月24日

    摘要:Pandas 是Python Data Analysis Library的简写,它是为了解决数据分析任务而创建的工具,本文介绍了五种由慢到快逐步优化其效率的方法 ,以下是译文 如果你用Python语言做过任何的数据分析,那么可能会用到Pandas,一个由Wes McKinney写的奇妙的分析库。通过赋予Python数据帧以分析功能,Pandas已经有效地把Python和一些诸如R或者SAS这样比较成熟的分析工具置于相同的地位。 不幸的是,在早期,Pa

    阅读全文...

  • 用不到 50 行的 Python 代码构建最小的区块链

    Posted by : lon.y@qq.com on 2017年11月23日

    尽管一些人认为区块链是一个等待问题的解决方案,但毫无疑问,这种新技术是计算机的奇迹。但是,区块链到底是什么呢? 区块链 它是比特币或其他加密货币进行交易的数字账本,账本按时间顺序记录并对外公开。 在更一般的术语中,它是一个公共数据库,新数据存储在一个名为块的容器中,并被添加到一个不可变链(后来的区块链)中添加了过去的数据。在比特币和其他加密货币的情况下,这些数据是一组交易记录。当然,数据可以是任何类型的。 区块链技术已经催生了新的、完全数字化的货币,如比特

    阅读全文...

  • 探索 Php 和 Python 下对象的深拷贝和浅拷贝

    Posted by : lon.y@qq.com on 2017年11月23日

    一、深拷贝与浅拷贝 深拷贝:赋值时值完全复制,完全的copy,对其中一个作出改变,不会影响另一个 浅拷贝:赋值时,引用赋值,相当于取了一个别名。对其中一个修改,会影响另一个 对于PHP而言,= 赋值时,普通对象是深拷贝,但对对象来说,是浅拷贝,即引用赋值。当对象作为参数传递时,无论参数前是否有&引用符号,都将被看做是赋值引用。 对于python而言,情况可能会有点小复杂,因为python一切皆为对象,所以python的普通赋值、深拷贝和浅拷贝之间都

    阅读全文...

  • 曲线点抽稀算法- Python 实现

    Posted by : lon.y@qq.com on 2017年11月20日

    何为抽稀 在处理矢量化数据时,记录中往往会有很多重复数据,对进一步数据处理带来诸多不便。多余的数据一方面浪费了较多的存储空间,另一方面造成所要表达的图形不光滑或不符合标准。因此要通过某种规则,在保证矢量曲线形状不变的情况下, 最大限度地减少数据点个数,这个过程称为抽稀。 通俗的讲就是对曲线进行采样简化,即在曲线上取有限个点,将其变为折线,并且能够在一定程度保持原有形状。比较常用的两种抽稀算法是:道格拉斯-普克(Douglas-Peuker)算法和垂距限值法

    阅读全文...