概念
数据结构(Data structure)是组织数据、存储数据的方式。在计算机中,常见的数据结构有栈(Stack)、队列(Queue)、数组(Array)、链表(Linked List)、树(Tree)、图(Graph)等。我们日常接触最多也是数据分析中最常用的结构是数组。
数组由相同类型元素的集合组成,对每一个元素分配一个存储空间,这些存储空间是连续的。每个空间会有一个索引(index)来标识元素的存储位置。类似于Excel表格,列方向上用数字作为行号,即索引,可以准确找到元素。
现实数据往往会由多个数组组成,它们共用同一个行索引,组成了二维数组,对应于数学中的矩阵概念。这类似于Excel表格中列方向上用字母来表示一个数组,如图2-1所示。可以利用线性代数中矩阵的性质和计算方法对数据进行处理和计算。
Python的数据结构
Python为我们提供了最基础的数据存储结构,在数据的ETL过程中可能需要借助Python原生的数据结构来处理数据。
在标准的Python数据类型中,有些是可变的,有些是不可变的。不可变就意味着你不能对它进行操作,只能读取:
不可变数据:Number(数字)、String(字符串)、Tuple(元组)。
不可变数据:Number(数字)、String(字符串)、Tuple(元组)。
可以用内置的type()函数查看数据类型,如:
print(type(123))#int
a='hello'
print(a)#返回str
用isinstance来判断是不是指定的类型:
isinstance(123,int)
#结果:True
isinstance('123',int)
#结果:False
isinstance(True,bool)
#结果:True
数字
Python的数字类型可以存储数学中的各种数字,包括常见的自然数、复数中的虚数、无穷大数、正负数、带小数点的数、不同进制的数等。
x=1 #int,整型
y=1.2 #float,浮点
x=1 #complex,复数
对数字进行运算:
a=10
b=21
#数值计算
a+b #31
a-b #-11
a*b #210
b/a #2.1
a**b #表示10的21次幂
b%a #1(取余)
#地板除,相除后只保留整数部分,即向下取整
#赕如果其中一个操作数为负数,则取负无穷大距离结果最近的整数
9//2 #4
9.0//2.0 #4.0
字符串
字符串可以是一条或多条文本信息。在Python中非常容易定义字符串,字符串的计算处理也非常方便
可以对字符串进行切片访问(同时适用于字符、列表、元组等)。字符串从左往右,索引从0开始;从右往左,索引从–1开始。可以取字符串中的片段,切片索引按左闭右开原则:
str = 'hello world!'
#按索引取部分内容,从0开始,左必须要小于右
#支持字符,列表,元组
str[0] #'h'
#从右到左,索引从-1开始
str[-1]#'!'
str[-3:-1]