- 博客(14)
- 收藏
- 关注
原创 scala中内部函数的使用
在函数式语言中,函数是一等公民,也是最基本的功能块。通常为了使代码更加清晰易读,我们往往会写许多辅助函数。但是大家都知道,给函数或者变量起个合适的名字,是coding中最难的任务,没有之一。函数多了以后,很容易名字就冲突,而且暴露给外部过多的函数也会带来各种问题。在java里,我们是通过private method这种方式来解决。当然,scala里也可以这么干。但是我们既然说scala是函数式语言,
2016-10-31 21:57:06 5490
原创 scala中map与flatMap浅析
在函数式语言中,函数作为一等公民,可以在任何地方定义,在函数内或函数外,可以作为函数的参数和返回值,可以对函数进行组合。由于命令式编程语言也可以通过类似函数指针的方式来实现高阶函数,函数式的最主要的好处主要是不可变性带来的。没有可变的状态,函数就是引用透明(Referential transparency)的和没有副作用(No Side Effect)。 任何一种函数式语言中,都有map函数与fa
2016-10-31 16:39:51 30163 1
原创 企业级数据服务的一点感受
今日去听了一个比较水的企业级大数据服务的峰会。说比较水的主要原因是绝大部分时间都是峰会的主办方与投资人在自卖自夸给自己做广告宣传,技术方面的干货乏善可陈。但是,从非技术的角度来看,里面嘉宾的一些观点还是值得我们学习的。毕竟公司老板与投资人是站在一个比较全局与宏观的角度来看待整个行业的发展,他们掌握与接触的信息量也比我们这种小码农要多得多。所以本篇小文章不就具体的技术细节展开讨论,而是将听到的一些观点
2016-10-28 09:31:34 822
转载 Python导入模块的几种姿势
作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包。但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机制其实非常灵活。在本文中,我们将探讨以下话题:常规导入(regular imports) 使用from语句导入 相对导入(relative imports) 可选导入(optional imports) 本地导入(local impo
2016-10-15 21:05:06 16159
原创 批量重命名文件名
批量重命名文件名是常见的需求。例如我们这有三个文件都是以.txt结尾,现在我们想重命名为.csv文件。以下给同学们介绍如下两种方式。1.使用mv命令话不多少,直接上代码#!/bin/bashfor file in `ls`do newfile=`echo $file | sed 's/\.txt/\.csv/'` mv $file $newfiledonemv的方式如上。如果不是
2016-10-08 22:46:25 4564
原创 TensorFlow 安装教程
趁着十一放假期间,有这么一点空闲时间,自己看了些tensorflow的资料,顺便在自己的机器上安装了一下tensorflow的环境。安装过程还算比较顺利,现在跟大家分享一下。1.准备好Anaconda环境tensorflow是属于很高层的应用。高层应用的一个比较大的麻烦就是需要依赖的底层的东西很多,如果底层依赖没有弄好的话,高层应用是没法玩转的。 在极客学院有关tensorflow的教程中,提到了
2016-10-07 14:48:01 111352 8
转载 python的with用法
1.With语句是什么?有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。如果不用with语句,代码如下:file = open("/tmp/foo.txt")data = file.read()file.close()这里有两个问题:一是可能忘
2016-10-06 21:18:11 35080 5
原创 用概率的方法计算Pi值
精确计算Pi的值,从古至今都吸引了无数的数学家。迄今为止,科学家还没有计算得出精确的Pi值,也没有发现小数点后面的值有什么规律。 现在,我们用一种比较简单的概率的方式来近似计算Pi的值。 二话不说,直接上代码。public class PiCaculate { public static double caculate() { Random r = new Random()
2016-10-05 22:48:28 5215
原创 python中实用的collections模块
1.Counter类Counter类是hashtable对象的计数,是dict的子类,从2.7以后的版本加入。 计数器是我们常用的一个功能,collections中的Counter类就提供了此功能。>>> from collections import *>>> a = Counter()>>> b = Counter("aabbcccd")>>> c = Counter({"a":10,"
2016-10-04 21:04:08 4899
原创 python set类型
1.set类型用途在python中,dict是一种非常重要的数据结构,几乎无处不见。dict是一种典型的k-v结构,不管其中的元素多少,查找速度是非常快的,可以认为是近似的O(1)O(1)的查找速度而与dict本身的大小无关。 在许多场景中,我们只关注dict的key,而对value不care,目的只是确保这个集合中元素的唯一性。这个时候,set就能派上用场了。set中是一系列元素的集合,这一点与
2016-10-03 22:42:56 3712 1
转载 理解Java对象序列化
关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结。此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制。在撰写本文时,既参考了Thinking in Java, Effective Java,JavaWorld,developerWorks中的相关文章和其它网络资料,也加入了自己的实践经验与理解,文、码并茂,希望对大家有所帮助。(
2016-10-02 22:13:15 472
原创 大数据工程师必备之蓄水池抽样算法
做大数据的同学经常会有这样的需求: 给出一个数据流,这个数据流的长度很大或者未知。并且对该数据流中数据只能访问一次。请写出一个随机选择算法,使得数据流中所有数据被选中的概率相等。 或者也可以这么说: 要求从N个元素中随机的抽取k个元素,其中N的大小未知。很多同学说,擦,这还不简单么,将所有元素保存在一个列表中,然后再随机取k个不就完了么。 好吧,如果你不是专门搞大大大数据的同学,这么说我觉得
2016-10-01 22:47:05 14923 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人