Python函数式编程系列012:惰性列表之生成器与迭代器

2021-10-25
阅读 3 分钟
1.8k
因为本系列还是基于一些已经对Python有一定熟悉度的读者,所以我们在此不做非常多的赘述来介绍基本知识了。而是回我们之前的主题,我们要用迭代器和生成器实现之前的指数函数。

Python函数式编程系列011:类与类型

2021-10-19
阅读 3 分钟
1.4k
我在前面水管模型的叙述中,一直将函数式的假想敌人想象成「过程式」编程。这里当然我们就不免地对编程语言做一些简单的分类。许多人认为函数式编程相反的概念是面向对象编程,但其实这里存在了非常多的误解。我在前面的文章里,一直强调如果要使用一个新的概念,就必须至少在那篇文章里做说明。一路走来,函数式的基本...

Python函数式编程系列010:惰性列表之动手实现List

2021-10-18
阅读 3 分钟
2k
这篇文章,我们要动手实现一个List,不过和一般的文章不同,我们这里不用类来实现,而是用基本的数据结构,二元元组(a, b)和空元组()来实现。这两个都可以通过lambda直接定义出来,具体方法可以参考上一篇的内容。

Python函数式编程系列009:惰性列表之常规列表

2021-10-15
阅读 3 分钟
1.9k
我们在惰性求值中,我们介绍了「惰性列表」的概念,这个概念,其实在Python种也有部分原生支持。这就是很受新手困扰的生成器和迭代器了。但之前,我们首先要回顾一下关于列表的功能。

Python函数式编程系列008:可测

2021-10-13
阅读 2 分钟
1.3k
我们在之前的文章之中,已经反复地强调了很多函数式编程的优点,例如表达能力,延迟计算的好处之类的。但其实一个更大的有点其实是可测性。本篇文章也是传达整个系列要表达的核心,我们不是要完全排除过程式、副作用等概念,而是有限的使用,并且能在现有代码的基础上做改良。

Python函数式编程系列005:离题之定义自然数

2021-10-12
阅读 3 分钟
1.2k
在我们已经掌握了那么多建管子的方法之后,我们开始离题,看看我们能用最少的概念做哪些自举产生的事。在这一章中我们讲仅使用字符串"e",函数,if-else分支,=="e"运算,这四个概念来实现一个自然数的概念(实际中还用到了bool值,不过bool本身也可以用"e"和f("e")表示)。

Python函数式编程系列006:Y组合子与递归

2021-10-12
阅读 3 分钟
2.5k
在上一篇「离题」的文章中,我们介绍了如何单纯通过几个简单概念实现一个自然数的概念。这也告诉我们,其实函数式编程一个最核心的内容就是用最少的概念派生性地产生更多的概念来实现功能。这个不像Java之类的对象式语言需要的原生概念非常多,然后又需要更多的派生概念解决问题。

Python函数式编程系列004:递归

2021-10-12
阅读 3 分钟
1.5k
说到代码复用,最低层次的代码复用就是基于for/while等的递推(iteration)思路了,它们的策略在代码行的重复,我们可以看一下下面求幂的例子(这个例子将在之后会以各种面目出现):

Python函数式编程系列007:惰性求值

2021-10-12
阅读 5 分钟
2.9k
本系列文章一些重要的函数、方法、类我都实现的一遍,你可以在github(点击此处)中找到代码和测试例子(如果网速过慢我也放了一份在gitee(点击此处)上,但请勿在gitee上提issue或者留言),欢迎star/fork。

Python函数式编程系列003:一等公民

2021-09-24
阅读 3 分钟
1.5k
这篇文章里,我们将讨论一个函数式编程的重要概念,「函数是一等公民」,顺便引出科里化、Partial Applied Function、多元函数的概念。

Python函数式编程系列002:水管模型和compose

2021-09-24
阅读 2 分钟
2k
过程式思维里,每一个可变变量、函数/过程指称的符号,类似告诉你一个屋子的名字。对一个静态语言来说,我们可能还需要屋子里只能放什么东西。然后,我们每一次调用一次函数/过程,就是将对对应屋子里的函数取出来,以及其他屋子里的物件取出来,按照函数的方式重新整理,把结果放到原先的屋子或者新的屋子里。(注意这...

Python函数式编程系列001:无副作用

2021-09-23
阅读 3 分钟
2.6k
这个博客的目的本来是讨论数据(用\(\tau\)表示)和函数式编程/计算机科学(用\(\lambda\)表示)的两类主题的。但事实上,本博客还没写过任何关于函数式编程的内容,显得有些「名不副实」。而近几年在一些项目上和自己理论学习中的实践,对于函数式编程有了一些不大不小的洞识。希望能借由这个系列来给大家传递一些函数式...

比例类数据的差异性检验与AB测试的终止点

2021-01-05
阅读 4 分钟
5.6k
在实际业务中,我们经常会遇到频率类事件的假设检验,这类数据包括:留存率、点击率、转化率。我们甚至可以把大多数AB测试类的场景都理解为「频率的假设检验」。本文试图创建一个一般性的频率假设检验工具的EXCEL实现,并介绍其工作原理。文件参考这里(https://github.com/threecifanggen/data-science-tools/blob/maste...

Awesome Data Science in Python | 一文整理Python常用数据科学第三方模块

2019-06-16
阅读 1 分钟
3.6k
1. 机器学习 EDA lantern 特征工程 yellowbrick Featuretools 模型解释 SHAP Lime 通用 Scikit-learn 自动化机器学习 mljar-supervised 2. 统计方法 通用 StatsModels:通用概率派 Scipy:含常见分布、统计量计算 pyro:基于pyTorch的通用统计模型库 Edward:基于tensorflow的通用统计模型库 贝叶斯 PyStan:贝叶斯模型(...

用进度条助您特征工程一臂之力

2018-08-18
阅读 3 分钟
9.6k
在具体的分析或者特征工程之中,经常会遇到处理时间很久的问题,当然必要的优化是必须的。但是显然,数据量上升,计算量过大后,处理时间是必须的此。时,如果有个可以帮助您查看任务进度的进度条,必定可以提高你抓住处理时间去做(磨)别(洋)事(工)。当然逐行打印是不错的选择,但在Jupyter notebook/JupyterLab中...

用户行为与生存分析

2018-08-06
阅读 7 分钟
8.1k
生存分析(Survival Analysis)来源于基础医学领域,最早用来研究各种治疗方案对病人寿命的影响。而寿命则用一个end event(死亡)的方式衡量。基本定义如下:

Jupyter 常见可视化框架选择

2017-11-02
阅读 9 分钟
11.3k
对于以Python作为技术栈的数据科学工作者,Jupyter是不得不提的数据报告工具。可能对于R社区而言,鼎鼎大名的ggplot2是常见的可视化框架,而大家对于Python,以及Jupyter为核心的交互式报告的可个视化方案就并没有那么熟悉。本文试图比较几个常用的解决方案,方便大家选择。

装扮你的Jupyter

2017-05-05
阅读 5 分钟
13.9k
又到摆脱重复工作,换个心情,然而并没有软用的时间了。这次,教大家如何搭建一个好看的jupyter环境。 安装Jupyter 先来展示一下我的环境 python: 3.5.* macos: 10.12.4 安装Jupyter的过程只需安装Anaconda即可。 测试一下初始设置: {代码...} 配置ipython 首先,如果每次你打开一个nb(notebook)时,如果都需要载入一...

Python 和 R 数据分析/挖掘工具互查

2016-05-01
阅读 5 分钟
14.7k
在此总结一些在数据分析/挖掘中可能用到的功能,方便大家索引或者从一种语言迁移到另一种。当然,这篇博客还会随时更新(不会另起一篇,为了方便大家索引),请大家如果有需要收藏到书签中。

Making Your Python Codes More Functional

2016-03-14
阅读 3 分钟
3.8k
本篇文章是基于Joel Grus: Learning Data Science Using Functional Python视频的笔记。 常用的函数 currying 在Python中实现科里化的最佳方案是functools.partial。例如以下例子: {代码...} reduce、map、filter 这几个是常见的FP中处理列表的函数,在此不做介绍。 注意:Python这得reduce在functools包中。 iterators...