Python▍每天学一点 AI时代的最佳编程语言Python
每天学一点Python
小伙伴们下午好!前两天我们为大家推荐了几篇关于
Python的基础文章和应用案例,后来收到了很多小伙伴们的反馈,大家对学Python充满了热情,并且希望以后看到更多关于Python的知识,基于此,我们将从今日开始,开设一个名叫“每天学一点Python”的系列小专栏,从头开始,把Python一点一滴的拆开,让大家每天都可以学一点点,每天进步一点点,今天是第一篇。
首先,先放上一个关于Python的介绍视频,视频是英文版的,考验大家英语能力的时候到了~
在人工智能上使用Python编程语言的优势
1.优质的文档
2.平台无关,可以在现在每一个*nix版本上使用
3.和其他面向对象编程语言比学习更加简单快速
4.Python有许多图像加强库像Python Imaging Libary,VTK和Maya 3D可视化工具包,Numeric Python, Scientific Python和其他很多可用工具可以于数值和科学应用。
5.Python的设计非常好,快速,坚固,可移植,可扩展。很明显这些对于人工智能应用来说都是非常重要的因素。
6.对于科学用途的广泛编程任务都很有用,无论从小的shell脚本还是整个网站应用。
7.最后,它是开源的。可以得到相同的社区支持。
总体的AI库
AIMA:Python实现了从Russell到Norvigs的“人工智能:一种现代的方法”的算法
pyDatalog:Python中的逻辑编程引擎baqist.cn
SimpleAI:Python实现在“人工智能:一种现代的方法”这本书中描述过的人工智能的算法。它专注于提供一个易于使用,有良好文档和测试的库。
EasyAI:一个双人AI游戏的python引擎(负极大值,置换表、游戏解决)
机器学习库
PyBrain 一个灵活,简单而有效的针对机器学习任务的算法,它是模块化的Python机器学习库。它也提供了多种预定义好的环境来测试和比较你的算法。
PyML 一个用Python写的双边框架,重点研究SVM和其他内核方法。它支持Linux和Mac OS X。
scikit-learn 旨在提供简单而强大的解决方案,可以在不同的上下文中重用:机器学习作为科学和工程的一个多功能工具。它是python的一个模块,集成了经典的机器学习的算法,这些算法是和python科学包(numpy,scipy.matplotlib)紧密联系在一起的。gbpcci.cn
MDP-Toolkit 这是一个Python数据处理的框架,可以很容易的进行扩展。它海收集了有监管和没有监管的学习算法和其他数据处理单元,可以组合成数据处理序列或者更复杂的前馈网络结构。新算法的实现是简单和直观的。可用的算法是在不断的稳定增加的,包括信号处理方法(主成分分析、独立成分分析、慢特征分析),流型学习方法(局部线性嵌入),集中分类,概率方法(因子分析,RBM),数据预处理方法等等。
自然语言和文本处理库
NLTK 开源的Python模块,语言学数据和文档,用来研究和开发自然语言处理和文本分析。有windows,Mac OSX和Linux版本。
此部分内容来自作者 FunHacks
在工作中遇到一个小问题,需要将一个python的字符串转为字典,比如字符串:
user_info = '{"name" : "john", "gender" : "male", "age": 28}'
我们想把它转为下面的字典:
user_dict = {"name" : "john", "gender" : "male", "age": 28}
有以下几种方法:
通过 json 来转换
import json
'{"name" : "john", "gender" : "male", "age": 28}' user_info=
user_dict = json.loads(user_info)
user_dict
{u'gender': u'male', u'age': 28, u'name': u'john'}
但是使用 json 进行转换存在一个潜在的问题。
由于 json 语法规定 数组或对象之中的字符串必须使用双引号,不能使用单引号 (官网上有一段描述是 “A string is a sequence of zero or more Unicode characters, wrapped in double quotes, using backslash escapes” ),因此下面的转换是错误的:
> import json
"{'name' : 'john', 'gender' : 'male', 'age': 28}" > user_info =
# 由于字符串使用单引号,会导致运行出错
> user_dict = json.loads(user_info)
Traceback (most recent call last):
File "
" , line 1, in < module>File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 380, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 2 (char 1)
通过 eval
'{"name" : "john", "gender" : "male", "age": 28}' > user_info =
> user_dict = eval(user_info)
> user_dict
{'gender': 'male', 'age': 28, 'name': 'john'}
"{'name' : 'john', 'gender' : 'male', 'age': 28}" > user_info =
> user_dict = eval(user_info)
> user_dict
{'gender': 'male', 'age': 28, 'name': 'john'}
通过 eval 进行转换就不存在上面使用 json 进行转换的问题。但是,使用 eval 却存在安全性的问题,比如下面的例子:
让用户输入 `user_info`
>> user_info = raw_input('input user info: ')
输入 {"name" : "john", "gender" : "male", "age": 28},没问题
>> user_dict = eval(user_info)
输入 __import__('os').system('dir'),user_dict 会列出当前的目录文件!
再输入一些删除命令,则可以把整个目录清空了!
>> user_dict = eval(user_info)
通过 literal_eval
> import ast
'{"name" : "john", "gender" : "male", "age": 28}' > user =
> user_dict = ast.literal_eval(user)
> user_dict
{'gender': 'male', 'age': 28, 'name': 'john'}
user_info = "{'name' : 'john', 'gender' : 'male', 'age': 28}"
> user_dict = ast.literal_eval(user)
> user_dict
{'gender': 'male', 'age': 28, 'name': 'john'}
使用 ast.literal_eval 进行转换既不存在使用 json 进行转换的问题,也不存在使用 eval 进行转换的 安全性问题,因此推荐使用 ast.literal_eval。
考考你
以下哪个不是Python的机器学习库?
A、Tensorflow
B、scikit-learn
C、Theano
D、PyInstaller
你可以写留言来告诉我们答案。本题将于明天给大家讲解。
粉丝福利:
加微信号(julyedufu77)并发送关键字“Python基础”即可0元学习七月在线精品课程《Python基础课程升级版》,限30名额。
欢迎投稿,投稿/合作:dashuju36@qq.com
如果您觉得文章不错,那就分享到朋友圈~
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 习近平拉美之行的三个“一” 7961118
- 2 微信或史诗级“瘦身” 内存有救了 7917748
- 3 男子求助如何打开亡父遗留14年手机 7811413
- 4 中国主张成为G20峰会的一抹亮色 7763433
- 5 中国对日本等国试行免签 7637890
- 6 7万余件儿童羽绒服里没有真羽绒 7555260
- 7 女生半裸遭男保洁刷卡闯入 酒店回应 7489108
- 8 70多辆小米SU7同一天撞墙撞柱 7339519
- 9 操纵股价 2人被证监会罚没近3.35亿 7231713
- 10 千年古镇“因网而变、因数而兴” 7136302