Python大数据分析学习基础篇——数据结构

Posted Tiramisu1104

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python大数据分析学习基础篇——数据结构相关的知识,希望对你有一定的参考价值。

一、函数部分

1、闭包

所谓闭包其实跟回调函数有有相通之处。闭包可以延长作用时间和作用域。

def say(word):
    def name(name):
        print(word,name)
    return name
hi = say('你好')
hi("小明")
bye  =say("再见")
bye("小明 ")

运行结果:

你好 小明
再见 小明 

2、匿名函数lambda

python中允许用lambda关键字定义一个匿名函数,所谓匿名函数,就是调用一次或者几次就不需要的函数。属于一次性函数。

#求两数之和,定义函数f(x,y)=x+y
f = lambda x,y: x+y
print(f(2,3))
#或者这样求两数的平方和
print((lambda x,y : x**2 + y**2 )(3,4))

运行结果:

5
25

3、关键字yield

yield关键字可以将函数执行的中间结果返回但不结束程序。

def func(n):
    i=0
    while i<n:
        yield i
        i+=1
for i in func(10):
    print(i)

运行结果如下

0
1
2
3
4
5
6
7
8
9

二、数据结构

1、列表(list)

列表是程序中常用的结构。Python的列表功能相当强大,可以作为栈(先进后出表)、队列(先进先出表)等使用。

只需要在[ ]中添加列表的项(元素),以半角符号隔开每个元素,即可定义列表

s=[1,2,3,4,5]

要获取列表中的元素,可以采用list[index]方式。

2、元组

元组tuple跟list很像,只不过用小括号()的形式,但是tuple中的元素一旦确定就不能更改。下面两种方式都是定义一个tuple

t = (1,2,3)

t= 1,2,3

3、集合(set)

集合set是大多数语言会提供的数据结构。他不能保存重复的数据,即具有过滤重复数据的功能。

对于一个数组或者元组来说可以用set函数去掉重复的数据。

注意:set中的元素位置是无序的,因此不能用set[i]这样的方式获取其他元素。

4、字典(dict)

(1)字典(dict)又称键值对。

>>>d1 = dict(a=1,b=2,c=3)

>>>d1

'c':3, 'a':1,'b':2

(2)集合的操作

集合操作符

x in S  判断S是否包含X元素

x not in S  判断S中不包含X元素

S+T   连接S与T,返回连接后的新集合类

S*n    将S延长自身N次

len(s) 返回S的长度

三、3个函数(map,filter,reduce)

map和filter属于内置函数,reduce函数在Python2中是内置函数,从Python3就移到了functools模块中,使用时需要从 functools模块中导入。

1、遍历函数(map)

map函数用于遍历序列。对序列中的每个元素进行操作,最终获取新的序列。

>>> li=[11,22,33]
>>> new_list = map(lambda a: a+100,li)
>>> list(new_list)
[111, 122, 133]

2、筛选函数(filter)

filter函数用于对序列中的元素进行筛选,最终获取符合条件的序列。

>>> li= [11,22,33]
>>> new_list = filter(lambda x  : x>22, li)
>>> list(new_list)
[33]

3、累计函数(reduce)

reduce函数用于对序列内所有元素进行累计操作。

>>> form functools import reduce
>>> li =[11,22,33,44]
>>> reduce(lambda arg1,arg2:arg1+arg2,li)
110

三、面向对象编程基础

1、类

在python中,所有的数据类型都可以被视为对象。当然也可以自定义对象自定义对象的数据类型就相当于面向对象中类的概念。

面向对象的设计思想是抽象出类(class)根据class创建Instance。面向对象的抽象程度比函数要高,因为一个class既要包含数据,又要包含数据的操作方法。

2、类和实例

在python中,是通过class关键字定义类的。

Class Student (object):
    def __ init__(self,name,tell):
        self.name = name 
        self.tell = tell

注意__init__方法的 第一个参数永远是self,表示创建的实例本身。因此,在__init__方法内部,就可以吧各种属性绑定到self,因为self就指向创建的实例本身。

3、数据封装

Class Student(object):
    def __ init__(self,name,tell):
        self.name = name
        self.tell = tell
    def print_tell(self):
        print('%s:%s' % (self.name,self.tell))

4、私有变量和私有方法

类可以有公有变量和公有方法,也可以有私有变量和私有方法,公有部分的对象可以从外部访问,而私有部分的对象只有类的内部才可以访问。在普通的变量或者方法名前加两个“-”,即可成为私有变量或者方法。

以上是关于Python大数据分析学习基础篇——数据结构的主要内容,如果未能解决你的问题,请参考以下文章

Python大数据分析学习基础篇——数据结构

Python大数据分析学习基础篇——数据结构

Python机器学习及实践——基础篇6(决策树)

python大数据分析学习基础篇——初识Python

python大数据分析学习基础篇——初识Python

Python大数据分析学习基础篇——异常与函数