您的位置:首页 > 编程语言 > Python开发

Python入门重点

2016-05-27 10:34 369 查看
1.容器类型

Python提供多种数据类型来存放数据项集合。用户还可以通过添加模块创建出更多容器类型。Python中常用的容器有:

(1)列表List——列表是Python中存放有序对象的容器,可以容纳任何数据类型:数值、布尔型、字符串等等。列表一般用两个中括号来表示,下面的代码演示了如何创建一个名为jj的列表,并在列表内添加一个整数和一个字符串:

>>> jj=[]

>>> jj.append(1)

>>> jj.append('nice hat')

或者

>>> jj=[1, 'nice hat']

Python中也有数组数据类型。但是数组中仅能存放同一种类型的数据,在循环的时候它的性能优于列表。

(2)字典Dictionary——字典是一个存放无序的键值映射类型数据的容器,键的类型可以是数字或者字符串。下面创建一个字典并在其中加入两个元素:

>>> jj={}

>>> jj ['dog'] ='dalmatian'

>>> jj [1]=42

或者

>>> jj={1: 42, 'dog': 'dalmatian' }

(3)集合(Set)——这里的集合与数学中集合的概念类似,是指由不同元素组成的集合。下面的命令可以从列表中创建一个集合来:

>>> a=[1, 2, 2, 2, 4, 5, 5]

>>> sA=set(a)

>>> sA

{1, 2, 4, 5}                         #注意生成的集合中的元素满足唯一性

集合支持一些数学运算,比如交集、并集和补集。并集用管道符号(|)表示,交集用&符号来表示

>>> sB=set([4,5,6,7])

>>>sA-sB

{1, 2}

>>> sA | sB

{1, 2, 4, 5, 6, 7}

>>> sA & sB

{4, 5}

 

2. 控制结构

(1)if 语句非常直观,写成多行时,使用缩进来告诉编译器本语句尚未完成。

>>> if jj<3:

           jj+=1

       elif jj==3: jj+=0

       else: jj=0

(2)For循环遍历集合中的每个元素

>>> sB=set ([4, 5, 6, 7])

>>> for item in sB:

             print item

 

下面遍历一部分字典:

>>> jj={'dog': 'dalmatian', 1: 45}

>>> for item in jj:

            print item, jj[item]  #字典中的元素会按键值大小顺序遍历

(3)列表推导式

 >>> a=[1, 2, 2, 2, 4, 5, 5]

>>> myList = [item*4 for item in a]

另外

>>> [item*4 for item in a if item>2]

 

2. NumPy模块

NumPy是Python的一个矩阵类型,提供了大量矩阵处理函数。非正式来说,它是一个使运算更容易、执行更迅速的库,因为它的内部运算是通过C语言而不是Python实现的。

尽管声称是一个关于矩阵的库,NumPy实际上包含了两种基本的数据类型:数组和矩阵。

数组处理的例子

>>> from numpy import array

>>> mm=array((1,1,1))

>>> pp=array((1,2,3))

>>> pp+mm

如果只用常规Python的话,完成上述功能需要使用for循环。

另外在Python中还有其他一些需要循环的处理过程,例如在每个元素上乘以常量2,而在NumPy下就可以写成:

>>> pp*2

NumPy中也支持多维数组

>>> jj =array([[1, 2, 3], [1, 1, 1]])

>>> jj [0]

>>> jj [0] [1]

也可以用矩阵方式访问:

>>> jj [0, 1]

把两个数组乘起来的时候,两个数组的元素将对应相乘

>>> a1=array([1,2,3])

>>> a2=array([0.3,0.2,0.3])

>>>a1*a2

 

矩阵处理的例子

与使用数组一样,需要从NumPy中导入matrix或者mat模块:

>>> from numpy import mat, matrix

>>> ss = mat ([1,2,3])

#上述mat是matrix的缩写

可以访问矩阵中的单个元素:

>>> mm [0, 1]

可以把Python列表转换成NumPy矩阵

>>> pyList=[5,11,1605]

>>> mat(pyList)

>>> mm*ss.T    #.T方法完成了ss的转置

>>> from numpy import shape

>>> shape (mm)  #通过NumPy中的shape方法来查看矩阵或者数组的维数

>>>from numpy import multiply

>>>multiply (mm,ss)

#把矩阵mm的每个元素和矩阵ss的每个元素对应相乘,即元素相乘法。

>>>mm.sort()   #原地排序,排序后的结果占用原始的存储空间,如果希望保留数据的原序,必须事先做一份拷贝。

>>>dd.argsort()  #使用argsort()方法得到矩阵中每个元素的排序序号

>>>dd.mean() 

 

 

 

 

 

  

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息