Huper

努力不一定成功,但是不努力一定很轻松!

python学习笔记 04 关于GIL

前面几篇博客中在对比java和python的时候可能有点偏激,这其实只是因为我比较喜欢python简洁的语法而已,有这种简洁语法的支持,编码效率是很高的。即使如此,也完全不能说明python是比java优秀的语言。那为什么经常可以看到网上有人随便就列举出一大堆python比java好的地方?其实里面大多数都是从语法细节这一个大的层面展开讲的,没有从其他大的层面来说。但是很不幸语法特性是跟开发...

python学习笔记 03 多线程

昨天看了python的多进程,今天理所应当地来学习多线程。廖老师专门强调了python里的线程是POSIX thread也叫Pthreads,以前是c里的一套线程API,现在实际上是一套线程设计规范,包括调度,同步,互斥和协同工作等等。其实现在主流编程语言的线程库基本都支持这套规范,感觉尤其是java在多线程这块做得真的比较完善甚至有些复杂了。 Python的标准库提供了两个模块:_thr...

Git学习笔记 06

远程仓库

关于本地仓库的一些东西前面基本已经讲完了,接着转移到远程仓库的学习。远程仓库的作用主要有: 对本地代码进行备份。 多人进行协作开发的中间渠道。 比较著名的远程托管仓库就是GitHub了,接下来的一些例子都是针对GitHub进行的。GitHub的账户注册和仓库创建这里就不讲了。我首先在GitHub上建立了一个叫learngit的仓库,创建成功之后GitHub...

数据挖掘十大算法 朴素贝叶斯

用python实现朴素贝叶斯分类

前言 最近python学得也算是逐渐上手了,用来完成一些简单的编程任务应该是没什么问题了。从大三下学期开始到现在,一直也在陆陆续续看一些数据挖掘和机器学习的算法,但是怎么说呢,感觉干巴巴的看真的很难对算法本身有比较深入的理解,《机器学习》这本书看完了以后有也没有多大的作用,可能因为我本身就对数学不够敏感吧。之前在实验课上也用java去实现过一些常用的数据挖掘算法,但总体来说当时做得...

python学习笔记 02 多进程

对于通用编程语言来说,多线程是其很重要的一个功能,但是有时候我们会有创建和管理进程的需要,所以越来越多的编程语言都添加了多进程编程的支持,比如java5之后引入的ProcessBuilder。事实上在java里很多时候是用不到多进程的,因为它的多线程已经很强大了,在多核情况下比较适合解决计算密集型问题。但是python的多线程就不一样了,由于GIL的原因,常常需要用多进程来弥补其不足。jav...

Git学习笔记 05

撤销和删除

上次详细讲了一下Git中的修改,今天主要学习一下撤销修改和删除文件。继续使用之前的文件huper.txt,在里面添加一条错误的句子: this boy is huper and he's so stupid! added version 1. added version 2. added version 3. added stage test. added change test appe...

python学习笔记 01 装饰器

由于要入坑机器学习和数据挖掘,有必要先好好钻研一下python,由于之前有那么一点点py的基础,所以这里就不想从零开始学习了,我会不定期地发一写学习过程中遇到的python有趣特性。今天首先来说一下python里的装饰器,之前我发过一篇专门讲java装饰器模式的文章,所以这里先详细谈一下两种装饰器的区别和联系: 相同点: 仅看功能的话,python里的装饰器和java...

Git学习笔记 04

修改管理

这一节里主要讲到如何对Git的修改进行详细的管理。Git之所以优秀,很重要的一个原因就是它追踪修改的粒度很细。先看这样一个例子,还是在之前的文件中添加一句话。然后执行add操作添加到暂存区: $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to un...

Git学习笔记 03

工作区和暂存区

上一节中学习了常用的版本管理方法,比如查看日志和版本回退前进等等。今天来讲解一下Git存储区相关的一些东西。主要介绍两个概念—工作区和暂存区。这里的暂存区比较重要,SVN里是没有这个概念的。 工作区(Working Directory) 工作区就是我们可以看到的工作目录。就是之前建立的用来保存Git工作文件的目录下的所有空间。这个没有什么需要详细介绍的。 版本库(Repo...

Git学习笔记 02

版本管理

上回学习了创建本地仓库以及简单的添加文件额提交等等,今天来看一下和版本管理有关的其他功能。常用的管理功能包括查看历史提交的具体信息,回退或者前进到某个具体版本等等,我们逐个来看。首先我们来模拟出三个提交历史,还是对上次创建的文件进行操作,三个版本的修改内容如下,记得每次修改后都进行add并commit: this boy is huper and he's so stupid! added...