希望该文章对你们有所帮助,尤其是对python网络爬虫或数据挖掘感兴趣的初学者。
由于大家来自不同的行业及水平各有差异,有的小伙伴们甚至没有接触过编程,所以这次的小课堂也将采取从零基础讲述,至于能不能达到精通的水平,那得看小伙伴们的兴趣、积极性、刻苦专研的精神。
最后希望通过这个小课堂讲解,大家能够自己独立完成基于Python的有关城市大数据挖掘及分析的研究成果。
在这里我们先不讨论什么是网络爬虫(Web crawler / Web spider),什么是数据挖掘(DataMining),什么机器学习(Machine Learning, ML)等概念性的术语。
百度百科(可以不看,只做了解):
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
数据挖掘,又译为资料探勘、数据采矿。它是数据库知识发现(英语:Knowledge-Discovery in Databases,简称:KDD)中的一个步骤。数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
下面进入正题
Python的安装及基础知识
测试环境:win7_64bit
首先去python官网。具体步骤如下:
第一步:打开浏览器并访问http://www.python.org官网下的downloads页面下载相应的版本;
注:推荐使用迅雷下载,比较快……
下载完成后,双击安装包文件(python-2.7.13.amd64.msi)
,
安转过ArcGIS软件的已经存在Python27这个文件夹,这里在C盘根目录下新建一个文件夹Python2713,
点击Next就开始安装了……
现已安装成功!……
环境变量配置:把Python的安装路径添加到Path中,位置如下: 计算机—属性—高级系统设置—环境变量
点击“开始”
,在所有程序中找到安装成功的Python2.7软件,如图所示:
测试能否正常运行:
1.cmd命令行测试过程如下
输入print “hello world”
注:如果是python3.X版本,须写成print (“hello world”)
输入完print语句后按“Enter”回车键,输出hello world,恭喜你现在可以开始编写python脚本呢!
2.GUI图形界面测试如下
python语法看官方文档手册:
Python基础知识
主要介绍下条件语句、循环语句、函数等基础知识。
1. 条件语句 if Statements
其包括单分支、双分支和多分支语句,if-elif-else。
1)单分支基本格式:
if condition: statements
2)双分支基本格式:
if condition: statements else: statements
3)多分支基本格式:
if condition: statements elif condition:
statements
else: statements
注:Python中if条件语句中条件condition无需圆括号( ),条件后面需要添加冒号:,它没有花括号{ }而是使用TAB键实现代码块区分。其中condition条件判断通常情况有布尔表达式(true或false, 0-假或1-真, 非零即真)、关系表达式(>=,<=,==,!=)和逻辑运算表达式(and, or, not)。statements语句不需要分号;结束,不像C、C#、Java等语言。
官方示例:
测试如下:
输入代码如下:
x = int(raw_input("Please enter an integer: "))
if x< 0:
x = 0
print 'Negative changed to zero'
elif x == 0:
print 'Zero'
elif x == 1:
print 'Single'
else:
print 'More'
运行,按快捷键 F5 即可:
如输入20,
则输出结果: More
2. 循环语句 for Statements
基本格式:
for target in sequences: statements
其中,target表示变量名,sequences表示序列,常见类型有list(列表)、tuple(元组)、strings(字符串)和files(文件)。 Python的for循环语句没有体现出循环次数,不像C、C#、Java等语言中,通常会有i,j,k变量记录for语句循环次数,如for(i=0;i<=10;i )中i循环计数,Python的for指每次从序列sequences里面的数据项取值放到target里,取完即结束循环,取多少次循环多少次。其中in为成员资格运算符,检查一个值是否在序列中。同样可以使用break语句和continue语句跳出循环。
官方示例:
words= ['cat', 'window', 'defenestrate']
for win words:
print w, len(w)
输出的结果如下:
cat 3
window6
defenestrate12
3. 循环语句 while Statements 基本格式: while condition: statements [else: statement] 其中condition判断条件语句可以为布尔表达式、关系表达式和逻辑表达式,和if语句的判断条件一样。方括号[ ]中的语句可有可无。
示例:
# coding=utf-8
i = 1
s = 0
while i <= 100:
s = s i
i = i 1
print "从1一直加到100的总和是",s
输出的结果如下:
从1一直加到100的总和是 5050
4. 函数 def 定义
基本格式:
def 函数名([形参])
statements
其中[形参]可有可无。
示例:
# coding=utf-8
#无形参的函数fun1()
def fun1():
print "Hello world"
#调用fun1()函数
fun1()
#有两个形参的函数fun2()
def fun2(val1, val2):
print val1 val2
#调用fun2()函数
fun2(10, 20)
输出的结果如下:
Hello world
30