Python教程:进击机器学习(二)--认识Python

如果有Python基础或者有学习过的,可以直接跳过本教程。
本教程旨在快速认识和了解Python,作为机器学习的前调\坏笑。

了解Python

Python作为一个高级编程语言,它有哪一些特性:

  • 不同于C语言(编译型语言),Python是一种解释型语言。就是在执行一段Python代码之前并不需要对其编译。
  • Python是开源的、免费的
  • 跨平台,Linux/Unix、Windows、MacOS X。
  • 没有冗长的语法,可读性很强
  • 兼容并支持其他语言

Hello Python

打开Ipython shell,类似Matlab,简单的Hello world就是这样。

>>> print("Hello, world!")
Hello, world! 

Python简单的语法体现在,不需要声明变量和函数类型。

>>> a = 3
>>> type(a)   
<type 'int'>

如果是C语言:

int a = 3;

再来感受一下复数计算:

>>> a = 1.5 + 0.5j
>>> a.real
1.5
>>> a.imag
0.5

Python的基础我就不讲太多,如果之前没接触过编程的可以推荐参考:http://www.runoob.com/python/python-tutorial.html
书籍的话推荐《Python基础教程 (第2版) 》下载地址:Beginning.Python.From.Novice.to.Professional,2nd.Edition_chs

数组

定义数组不用声明类型,也不限制数组里面的类型。

>>> colors = [3, -200, 'hello']

数组索引是从0开始,跟C语言一样,跟Matlab有区别(从1开始)

>>> colors[0], colors[2]
(3, 'hello')

Python关于数组的也有很多内置函数,方便我们操作函数。
例如添加值list.append(x),插入list.insert(i, x),排序list.sort(key=None, reverse=False)。更多数组的内置函数参考:
https://docs.python.org/3/tutorial/datastructures.html#more-on-lists

字符串

Python对String的操作类似List:

>>> a = "hello"
>>> a[0]
'h'
>>> a[-1]
'o'

字符串分割:

>>> a = "hello, world!"
>>> a[2:10:2]               # 参数: a[开始:结束:步长]
'lo o'

字符串格式化:

>>> 'An integer: %i; a float: %f; another string: %s' % (1, 0.1, 'string')
'An integer: 1; a float: 0.100000; another string: string'

更多关于Python字符串参考:https://docs.python.org/tutorial/introduction.html#unicode-strings

字典

Python字典有一个特点,无序。
定义一个字典:

>>> tel = {'emmanuelle': 5752, 'sebastian': 5578}

添加键值对:

tel['francis'] = 5915

然后我们再来输出一下这个字典

>>> tel     
{'sebastian': 5578, 'francis': 5915, 'emmanuelle': 5752}

可以看到我们插入的键值对被放在中间,Python的字典是不按任何规则来排序的。
我们可以调用这个字典键和值通过以下两个函数:

>>> tel.keys()  
['sebastian', 'francis', 'emmanuelle']
>>> tel.values() 
[5578, 5915, 5752]

关于字典更高级的操作参考:https://docs.python.org/tutorial/datastructures.html#dictionaries
除了这几个常用的容器类型,还有元组(Tuples)和集合(Sets),因为在实际开发中比较少用,所以就不展开讲了。

需要注意的一点是Python对变量分配地址的机制,不像其他语言,Python是对对象分配地址,同一个对象只分配一个地址,但是可以有多个变量名:

In   [1]:  a = [1, 2, 3]
In   [2]:  b = a
In   [3]:  a
Out[3]:  [1, 2, 3]
In   [4]:  b
Out[4]:  [1, 2, 3]
In   [5]:  a is b
Out[5]:  True
In   [6]:  b[1] = 'hi!'
In   [7]:  a
Out[7]:  [1, 'hi!', 3]

控制语句

在C语言中,在同一个控制语句下的需要加{}来表示。而在Python中只需要通过缩进来保持控制块,在同一个控制块的缩进要一致。

>>> a = 10
>>> if a == 1:
...  print(1)
... elif a == 2:
...  print(2)
... else:
...  print('A lot')
A lot

for语句的用法:

>>> for i in range(4):
...  print(i)
0
1
2
3

while语句的用法:

>>> a = [1, 0, 2, 4]
>>> for element in a:
...  if element == 0:
...    continue
...  print(1. / element)
1.0
0.5
0.25

函数定义

Python的函数定义也只需要def 函数名(参数):
(同样需要缩进)

In [81]: def double_it(x):
....:     return x * 2
In [82]: double_it(3)
Out[82]: 6

脚本和模块

我们已经把最基础的数据类型、容器、控制语句和函数简单了解一下,接下来我们就是把它们写到程序里面。我们把代码写进文件的目的就是重复使用这些代码,就跟为什么我们要用函数类似。我们一般用Python编辑器(Windows下IDE可以用Pycharm来写Python程序)来创建.py文件。

比如我们构建一个测试文件test.py

message = "Hello how are you?"
for word in message.split():
  print word

在IPython里面我们可以用%run test.py来运行程序

In [1]: %run test.py
Hello
how
are
you?

在Windows或者Linux的命令行就使用 python test.py 来运行程序

$ python test.py
Hello
how
are
you?

但是我们有时候又不需要执行一个程序,只是希望把一些函数写到文件里面,需要的时候再拿出来用,有点类似C++的头文件。这个时候就需要用到导入模块(我们可以用来导入我们自己写的文件,也可以导入所需要的函数库):
假设我们需要导入Numpy库来对0-10进行采样,我们可以这样使用:

>>>import numpy as np
>>>np.linspace(0, 10, 6)
array([0, 2, 4, 6, 8, 10])

as可以对导入的文件设置别名,当我们在调用模块里面的函数时只需在用一个.来链接(module.function())

关于Python的介绍就先讲到这里,接下来是Python数学计算库Numpy。

Ref:http://www.scipy-lectures.org/intro/language/python_language.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容