如何在python下使用pylearn2
1. Scikit-learn Scikit-learn 是基于Scipy为机器学习建造的的一个Python模块,他的特色就是多样化的分类,回归和聚类的算法包括支持向量机,逻辑回归,朴素贝叶斯分类器,随机森林,Gradient Boosting,聚类算法和DBSCAN。
而且也设计出了Python numerical和scientific libraries Numpy and Scipy2.Pylearn2 Pylearn是一个让机器学习研究简单化的基于Theano的库程序。
3.NuPIC NuPIC是一个以HTM学习算法为工具的机器智能平台。
HTM是皮层的精确计算方法。
HTM的核心是基于时间的持续学习算法和储存和撤销的时空模式。
NuPIC适合于各种各样的问题,尤其是检测异常和预测的流数据来源。
4. Nilearn Nilearn 是一个能够快速统计学习神经影像数据的Python模块。
它利用Python语言中的scikit-learn 工具箱和一些进行预测建模,分类,解码,连通性分析的应用程序来进行多元的统计。
5.PyBrain Pybrain是基于Python语言强化学习,人工智能,神经网络库的简称。
它的目标是提供灵活、容易使用并且强大的机器学习算法和进行各种各样的预定义的环境中测试来比较你的算法。
6.Pattern Pattern 是Python语言下的一个网络挖掘模块。
它为数据挖掘,自然语言处理,网络分析和机器学习提供工具。
它支持向量空间模型、聚类、支持向量机和感知机并且用KNN分类法进行分类。
7.Fuel Fuel为你的机器学习模型提供数据。
他有一个共享如MNIST, CIFAR-10 (图片数据集), Google's One Billion Words (文字)这类数据集的接口。
你使用他来通过很多种的方式来替代自己的数据。
8.Bob Bob是一个免费的信号处理和机器学习的工具。
它的工具箱是用Python和C++语言共同编写的,它的设计目的是变得更加高效并且减少开发时间,它是由处理图像工具,音频和视频处理、机器学习和模式识别的大量软件包构成的。
9.Skdata Skdata是机器学习和统计的数据集的库程序。
这个模块对于玩具问题,流行的计算机视觉和自然语言的数据集提供标准的Python语言的使用。
10.MILK MILK是Python语言下的机器学习工具包。
它主要是在很多可得到的分类比如SVMS,K-NN,随机森林,决策树中使用监督分类法。
它还执行特征选择。
这些分类器在许多方面相结合,可以形成不同的例如无监督学习、密切关系金传播和由MILK支持的K-means聚类等分类系统。
11.IEPY IEPY是一个专注于关系抽取的开源性信息抽取工具。
它主要针对的是需要对大型数据集进行信息提取的用户和想要尝试新的算法的科学家。
12.Quepy Quepy是通过改变自然语言问题从而在数据库查询语言中进行查询的一个Python框架。
他可以简单的被定义为在自然语言和数据库查询中不同类型的问题。
所以,你不用编码就可以建立你自己的一个用自然语言进入你的数据库的系统。
现在Quepy提供对于Sparql和MQL查询语言的支持。
并且计划将它延伸到其他的数据库查询语言。
13.Hebel Hebel是在Python语言中对于神经网络的深度学习的一个库程序,它使用的是通过PyCUDA来进行GPU和CUDA的加速。
它是最重要的神经网络模型的类型的工具而且能提供一些不同的活动函数的激活功能,例如动力,涅斯捷罗夫动力,信号丢失和停止法。
14.mlxtend 它是一个由有用的工具和日常数据科学任务的扩展组成的一个库程序。
15.nolearn 这个程序包容纳了大量能对你完成机器学习任务有帮助的实用程序模块。
其中大量的模块和scikit-learn一起工作,其它的通常更有用。
16.Ramp Ramp是一个在Python语言下制定机器学习中加快原型设计的解决方案的库程序。
他是一个轻型的pandas-based机器学习中可插入的框架,它现存的Python语言下的机器学习和统计工具(比如scikit-learn,rpy2等)Ramp提供了一个简单的声明性语法探索功能从而能够快速有效地实施算法和转换。
17.Feature Forge 这一系列工具通过与scikit-learn兼容的API,来创建和测试机器学习功能。
这个库程序提供了一组工具,它会让你在许多机器学习程序使用中很受用。
当你使用scikit-learn这个工具时,你会感觉到受到了很大的帮助。
(虽然这只能在你有不同的算法时起作用。
)18.REP REP是以一种和谐、可再生的方式为指挥数据移动驱动所提供的一种环境。
它有一个统一的分类器包装来提供各种各样的操作,例如TMVA, Sklearn, XGBoost, uBoost等等。
并且它可以在一个群体以平行的方式训练分类器。
同时它也提供了一个交互式的情节。
19.Python 学习机器样品 用亚马逊的机器学习建造的简单软件收集。
20.Python-ELM 这是一个在Python语言下基于scikit-learn的极端学习机器的实现。
在电脑上用python语言编程,都需要什么?
1.不同操作系统Python的配置方法会有差异,下面将主要介绍在Windows操作系统中的配置方法。
Windows之所以使用的这么普遍,是因为在windows下所有的操作都变的非常简单,安装软件只要点“下一步”就可以了。
Python也不例外,可以到网上下个Windows版的,下好后直接安装就ok了。
2.检验python是否安装配置成功,打开命令提示符,输入python,如果出现以下界面,则说 明你的python安装成功了。
3.如果不成功可以尝试添加环境变量,在我的电脑右击,选择系统属性>高级>环境变量,在系统变量中找到path。
编辑path值,添加你安装的python路径即可。
python模块i18n怎么导入
Python通过gettext模块支持国际化(i18n),可以实现程序的多语言界面的支持,下面是我的多语言支持实现:1. 在python安装目录下的./Tools/i18n/(windows下例 D:\Program Files\Python25\Tools\i18n)目录中找到pygettext.py运行之,生成翻译文件模版messages.pot,内容大概是这个样子:# SOME DESCRIPTIVE TITLE.# Copyright (C) YEAR ORGANIZATION# FIRST AUTHOR , YEAR.#msgid ""msgstr """Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2007-01-24 15:05+China Standard Time\n""PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n""Last-Translator: FULL NAME \n""Language-Team: LANGUAGE \n""MIME-Version: 1.0\n""Content-Type: text/plain; charset=utf-8\n""Content-Transfer-Encoding: ENCODING\n""Generated-By: pygettext.py 1.5\n"改之,charset=utf-8 Content-Transfer-Encoding: utf8如下:# SOME DESCRIPTIVE TITLE.# Copyright (C) YEAR ORGANIZATION# FIRST AUTHOR , YEAR.#msgid ""msgstr """Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2007-01-18 09:55+China Standard Time\n""PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n""Last-Translator: FULL NAME \n""Language-Team: LANGUAGE \n""MIME-Version: 1.0\n""Content-Type: text/plain; charset=utf-8\n""Content-Transfer-Encoding: utf8\n""Generated-By: pygettext.py 1.5\n"那个msgid” ” 和msgstr” “不要动好,翻译文件已经建立了,保存之,文件名改为lang.po.2. 建立翻译文件路径,在主文件目录下建立中文翻译路径 ./locale/cn/LC_MESSAGES/(windows下例D:\ python-prj\src\locale\cn\LC_MESSAGES,其中src目录是源文件主目录),英文翻译路径 ./locale/en/LC_MESSAGES/(windows下例D:\ python-prj\src\locale\en\LC_MESSAGES,其中src目录是源文件主目录)3. 在主文件中引入gettext模块:# -*- coding: utf-8 -*-#!/usr/bin/env pythonimport gettextgettext.install('lang', './locale', unicode=False)gettext.translation('lang', './locale', languages=['cn']).install(True)第四行中lang是翻译文件主名, ./locale是存放翻译文件的路径,第三个参数是是否使用unicode,第五行languages参数指定要使用的语言存放的子目录,这里cn表示使用./locale/cn/LC_MESSAGES/路径下的翻译文件.注意: # -*- coding: utf-8 -*- 一定要写在前两行,写第三行都不会生效4. 处理要翻译的字符串,例:print “Hello world!”print “Python is a good Language.”改之:print _(“Hello world!”)print _(“Python is a good Language.”)5. 编写并生成翻译文件,打开步骤1中编辑过的lang.po文件添加翻译文字,形成如下内容:# SOME DESCRIPTIVE TITLE.# Copyright (C) YEAR ORGANIZATION# FIRST AUTHOR , YEAR.#msgid ""msgstr """Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2007-01-18 09:55+China Standard Time\n""PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n""Last-Translator: FULL NAME \n""Language-Team: LANGUAGE \n""MIME-Version: 1.0\n""Content-Type: text/plain; charset=utf-8\n""Content-Transfer-Encoding: utf8\n""Generated-By: pygettext.py 1.5\n"msgid " Hello world!"msgstr "世界你好!"msgid " Python is a good Language."msgstr "Python 是门好语言."保存之,运行./Tools/i18n/目录下的msgfmt.py,Linux下命令为: python msgfmt.py lang.po(widows下的话,将lang.po文件拷贝到./Tools/i18n/目录下,运行命令行窗口,到改目录下键入:msgfmt.py lang.po),生成lang.mo,将该文件拷贝至./locale/cn/LC_MESSAGES/目录下,将步骤1生成的lang.po文件直接生成lang.mo文件拷贝到./locale/en/LC_MESSAGES/目录下,好了一切都准备好了,命令行下运行你的主文件,看看两个print命令是不是输出了世界你好! Python 是门好语言.,如果将主文件第五行languages参数置为en,则输出是Hello world! Python is a good Language.,因为en目录下lang.mo文件未做任何的翻译,默认字符串不被替换.上述实现的方法用在界面编程上可以实现中英文界面的切换,需要作个配置文件选择中/英文;或者在主文件开始时先获取操作系统本地语言然后根据获取结果再设置中/英文,这样就可以实现软件语言自适应;如果想实现软件语言在线切换,对于python来说就比较困难了,需要在软件中加入界面刷新机制,不推荐,可以在切换中/英文设置后软件下一次启动生效(软件如Ulipad).Note:.调用python安装目录的 Tools/i18n/pygettext.py抽取所需翻译的模板>>> pygettext.py path/to/yourfile.py将生成一个名为messages.pot的文件2.生成模板文件后,修改这个模板文件,其中的msgid为键值,对应你程序里写的文本,如:_("New File"),而msgstr为翻译后的值。
还有就是注意修改文件头部分Content-Type的charset为合适的编码,比如utf83.编写好模板后,把...
Python中,我想得到1~255随机整数,用rand.randint(1,255),但不想...
展开全部 观看了楼主采纳的这个答案觉得不妥,虽然下面的代码也可以达到随机的效果。
import randoma = random.randint(1, 254)if a >= 170:a += 1但却不是真正的随机,真正的随机应该是先随机得到1-254之间的一个数,如果这个数等于170,再次随机,这样才能保证得到的数是完全随机出来的,而不能给随机出来的数加上1。
可以是下面这样的。
import randoma=random.randint(1,254)while(a==170):a=random.randint(1,254)print(a)当然上面的随机是把170这个数也算入到里面去了,那么怎么去掉170这个数,再在1-169,169-254这两组数字之间随机呢?下面有一行代码可以得到随机整数 import randomrandom.choice([x for x in range(1,254) if x!=170 ])楼主可以用type(x)来查看得到的数的类型,是个整数哦。
不知道是否满足楼主的需求?...
Python有什么模块来加密
1)学好python的第一步,就是马上到python网站上下载一个python版本。
我建议初学者,不要下载具有IDE功能的集成开发环境,比如Eclipse插件等。
2)下载完毕后,就可以开始学习了。
学习过程中,我建议可以下载一些python的学习文档,比如《diveinto python》,《OReilly - Learning Python》等等。
通过学习语法,掌握python中的关键字语法,函数语法,数学表达式等等 3)学完了基本语法后,就可以进行互动式学习了。
python具备很好的交互学习模式,对于书本上的例子我们可以通过交互平台进行操练,通过练习加深印象,达到学习掌握的目的。
4)通过以上三个步骤的学习后,我们大致掌握了python的常用方法、关键字用法以及函数语法等。
接下去的学习上,我们就可以着手学习常用模块的使用,比如os,os.path,sys,string模块等。
我们可以在交互环境中先熟悉使用其中的函数,如果遇到函数的使用上的问题,可以参考python安装后的自带chm帮助文件。
5)为了更好得掌握python,我们的学习不能只是停留在学习一些语法或者api阶段。
在此阶段中,我们可以尝试用python解决我们项目中遇到的一些问题,如果项目不是用python开发的,那我们可以想想能不能用python制作一些项目组可以使用的一些工具(utility),通过这些工具简化项目组成员的任务,提高我们的工作效率。
如果没有项目,我们也可以自己找些题目来自己练习练习。
6)经过以上锻炼后,我们的python知识水平肯定是越来越高。
接下去的学习,我们就要更上一层楼。
为了学以致用,真正能应用于项目开发或产品开发,我们还必须学习企业应用开发中必须要掌握的网络和数据库知识。
在此的学习就不光是python语言本身的学习了,如果之前没有学习和掌握很网络和数据库知识,在此阶段我们可以借此机会补习一把。
7)在此,我想我们对python的使用以及信手拈来了,即使忘了api的用法,我们也可以在短时间内通过查看文档来使用api。
那么接下去,我们要学习什么呢?那就是设计能力,在学习设计能力的过程中,如果对类等面向对象的概念不清楚的,在此阶段也可以学习或加以巩固。
就像飞机设计师设计飞机通过学习模型来设计一样,我们也可以通过学习书上的经典例子来学习设计。
等有了设计的基本概念后,我们就可以着手设计我们的程序了。
在此阶段中,我们重要的是学习抽象的思想,通过隔离变化点来设计我们的模块。
8)到此阶段,我们已经是真正入门了。
在接下去的工作中,就是要快速地通过我们的所学来服务项目了。
在此阶段,我们除了掌握python自带的模块外,我们最好在掌握一些业界广泛使用的开源框架,比如twisted、peak、django、xml等。
通过熟练使用它们,达到闪电开发,大大节省项目宝贵时间。
开源爬虫框架各有什么优缺点?
首先爬虫框架有三种1. 分布式爬虫:Nutch2. JAVA单机爬虫:Crawler4j,WebMagic,WebCollector3. 非JAVA单机爬虫:scrapy第一类:分布式爬虫优点:1. 海量URL管理2. 网速快缺点:1. Nutch是为搜索引擎设计的爬虫,大多数用户是需要一个做精准数据爬取(精抽取)的爬虫。
Nutch运行的一套流程里,有三分之二是为了搜索引擎而设计的。
对精抽取没有太大的意义。
2. 用Nutch做数据抽取,会浪费很多的时间在不必要的计算上。
而且如果你试图通过对Nutch进行二次开发,来使得它适用于精抽取的业务,基本上就要破坏Nutch的框架,把Nutch改的面目全非。
3. Nutch依赖hadoop运行,hadoop本身会消耗很多的时间。
如果集群机器数量较少,爬取速度反而不如单机爬虫。
4. Nutch虽然有一套插件机制,而且作为亮点宣传。
可以看到一些开源的Nutch插件,提供精抽取的功能。
但是开发过Nutch插件的人都知道,Nutch的插件系统有多蹩脚。
利用反射的机制来加载和调用插件,使得程序的编写和调试都变得异常困难,更别说在上面开发一套复杂的精抽取系统了。
5. Nutch并没有为精抽取提供相应的插件挂载点。
Nutch的插件有只有五六个挂载点,而这五六个挂载点都是为了搜索引擎服务的,并没有为精抽取提供挂载点。
大多数Nutch的精抽取插件,都是挂载在“页面解析”(parser)这个挂载点的,这个挂载点其实是为了解析链接(为后续爬取提供URL),以及为搜索引擎提供一些易抽取的网页信息(网页的meta信息、text)6. 用Nutch进行爬虫的二次开发,爬虫的编写和调试所需的时间,往往是单机爬虫所需的十倍时间不止。
了解Nutch源码的学习成本很高,何况是要让一个团队的人都读懂Nutch源码。
调试过程中会出现除程序本身之外的各种问题(hadoop的问题、hbase的问题)。
7. Nutch2的版本目前并不适合开发。
官方现在稳定的Nutch版本是nutch2.2.1,但是这个版本绑定了gora-0.3。
Nutch2.3之前、Nutch2.2.1之后的一个版本,这个版本在官方的SVN中不断更新。
而且非常不稳定(一直在修改)。
第二类:JAVA单机爬虫优点:1. 支持多线程。
2. 支持代理。
3. 能过滤重复URL的。
4. 负责遍历网站和下载页面。
爬js生成的信息和网页信息抽取模块有关,往往需要通过模拟浏览器(htmlunit,selenium)来完成。
缺点:设计模式对软件开发没有指导性作用。
用设计模式来设计爬虫,只会使得爬虫的设计更加臃肿。
第三类:非JAVA单机爬虫优点:1. 先说python爬虫,python可以用30行代码,完成JAVA 2. 50行代码干的任务。
python写代码的确快,但是在调试代码的阶段,python代码的调试往往会耗费远远多于编码阶段省下的时间。
3. 使用python开发,要保证程序的正确性和稳定性,就需要写更多的测试模块。
当然如果爬取规模不大、爬取业务不复杂,使用scrapy这种爬虫也是蛮不错的,可以轻松完成爬取任务。
缺点:1. bug较多,不稳定。
1. 爬虫可以爬取ajax信息么?网页上有一些异步加载的数据,爬取这些数据有两种方法:使用模拟浏览器(问题1中描述过了),或者分析ajax的http请求,自己生成ajax请求的url,获取返回的数据。
如果是自己生成ajax请求,使用开源爬虫的意义在哪里?其实是要用开源爬虫的线程池和URL管理功能(比如断点爬取)。
2. 如果我已经可以生成我所需要的ajax请求(列表),如何用这些爬虫来对这些请求进行爬取? 爬虫往往都是设计成广度遍历或者深度遍历的模式,去遍历静态或者动态页面。
爬取ajax信息属于deepweb(深网)的范畴,虽然大多数爬虫都不直接支持。
但是也可以通过一些方法来完成。
比如WebCollector使用广度遍历来遍历网站。
爬虫的第一轮爬取就是爬取种子集合(seeds)中的所有url。
简单来说,就是将生成的ajax请求作为种子,放入爬虫。
用爬虫对这些种子,进行深度为1的广度遍历(默认就是广度遍历)。
3. 爬虫怎么爬取要登陆的网站?这些开源爬虫都支持在爬取时指定cookies,模拟登陆主要是靠cookies。
至于cookies怎么获取,不是爬虫管的事情。
你可以手动获取、用http请求模拟登陆或者用模拟浏览器自动登陆获取cookie。
4. 爬虫怎么抽取网页的信息?5. 开源爬虫一般都会集成网页抽取工具。
主要支持两种规范:CSSSELECTOR和XPATH。
6. 网页可以调用爬虫么?爬虫的调用是在Web的服务端调用的,平时怎么用就怎么用,这些爬虫都可以使用。
7. 爬虫速度怎么样?单机开源爬虫的速度,基本都可以讲本机的网速用到极限。
爬虫的速度慢,往往是因为用户把线程数开少了、网速慢,或者在数据持久化时,和数据库的交互速度慢。
而这些东西,往往都是用户的机器和二次开发的代码决定的。
这些开源爬虫的速度,都很可以。
怎么样给python文件加密
展开全部 简单模式:from hashlib import md5def md5_file(name):m = md5()a_file = open(name, 'rb') #需要使用二进制格式读取文件内容m.update(a_file.read())a_file.close()return m.hexdigest()if __main__ == '__init__':print md5_file('d:/test.txt')大文件速度更快一点的方式#!/usr/bin/python#encoding=utf-8import ioimport sysimport hashlibimport stringdef printUsage():print ('''''Usage: [python] pymd5sum.py ''')def main():if(sys.argv.__len__()==2):#print(sys.argv[1])m = hashlib.md5()file = io.FileIO(sys.argv[1],'r')bytes = file.read(1024)while(bytes != b''):m.update(bytes)bytes = file.read(1024)file.close()#md5value = ""md5value = m.hexdigest()print(md5value+"\t"+sys.argv[1])#dest = io.FileIO(sys.argv[1]+".CHECKSUM.md5",'w')#dest.write(md5value)#dest.close()else:printUsage()main()...
python爬虫怎样赚外快
展开全部 1)在校大学生。
最好是数学或计算机相关专业,编程能力还可以的话,稍微看一下爬虫知识,主要涉及一门语言的爬虫库、html解析、内容存储等,复杂的还需要了解URL排重、模拟登录、验证码识别、多线程、代理、移动端抓取等。
由于在校学生的工程经验比较少,建议只接一些少量数据抓取的项目,而不要去接一些监控类的项目、或大规模抓取的项目。
慢慢来,步子不要迈太大。
(2)在职人员。
如果你本身就是爬虫工程师,接私活很简单。
如果你不是,也不要紧。
只要是做IT的,稍微学习一下爬虫应该不难。
在职人员的优势是熟悉项目开发流程,工程经验丰富,能对一个任务的难度、时间、花费进行合理评估。
可以尝试去接一些大规模抓取任务、监控任务、移动端模拟登录并抓取任务等,收益想对可观一些。
渠道:淘宝、熟人介绍、猪八戒、csdn、发源地、QQ群等! 扩展资料: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。
搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。
但是,这些通用性搜索引擎也存在着一定的局限性,如: (1)不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。
(2)通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。
(3)万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。
(4)通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。
为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。
聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。
与通用爬虫(general purpose web crawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。
1 聚焦爬虫工作原理以及关键技术概述 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。
传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。
聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。
然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。
另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题: (1) 对抓取目标的描述或定义; (2) 对网页或数据的分析与过滤; (3) 对URL的搜索策略。
转载请注明出处51数据库 » 抽奖软件python
红绿灯里的那个黄