利用python进行数据分析(三)

写在前面:其实能发现这本书的章节安排并没有很系统,有些地方我觉得再多写一些东西进去就更好了。。。恩,老老实实顺着书的目录往下去吧,得相信作者这样安排是有用意的。。

第三章

3.1.3 内建序列函数

a) enumrate
我们通常需要在遍历一个序列的同时追踪当前元素的索引,如打印成绩排名,常用使用添加一个flagfor循环的方式:

>>>name_list = ['aa', 'bb', 'cc', 'dd']
>>>dict_list={}
>>>i = 1
>>>for name in name_list:
		dict_list[i] = name		
   		print(i, name)
		i += 1
1 aa
2 bb
3 cc
4 dd
>>>dict_list[3]
cc

当名单很长,我们仅仅想直接知道第多少名是谁时,可以通过将排名和名字存入字典,访问相应的键变得到了相应位次的同学。但这样代码显得不够简洁,因此python引入了enumerate函数,它返回了(i, value)的元组序列,其中i是元素的索引,value是元素的值。通过向其传入start参数,指定当前索引的初始值,默认为0。事实上,enumerate函数的使用对象为所有可遍历的数据对象(如列表、元组或字符串)。

>>>name_list = ['aa', 'bb', 'cc', 'dd']
>>>list(enumerate(name_list, start=1))
[(1, 'aa'), (2, 'bb'), (3, 'cc'), (4, 'dd')]

>>>dict1 = {}
>>>for i, value in enumerate(name_list, start=1):
... 	dict1[i] = value
>>>dict1
{1: 'aa', 2: 'bb', 3: 'cc', 4: 'dd'}
>>>dict1[3]
'cc'

b) sorted函数,返回一个根据任意序列中的元素新建的已排序列表,它与list.sort()的区别在于它是新会返回一个新的列表而不改变原有的列表,而且它可以对所有可迭代的对象进行排序操作。其他用法与sort相似。

>>>list1 = [2, 3, 5, 4, 1, 5, 8, 9, 43, 35]
>>>sorted(list1)
[1, 2, 3, 4, 5, 5, 8, 9, 35, 43]
>>>list1
[2, 3, 5, 4, 1, 5, 8, 9, 43, 35]

c) zip函数会将列表、元组或者其序列的元素配对,新建一个元组构成的新对象。zip类型的对象需要转为为列表方便进行其他操作(实例化)。

>>>list1 = [1, 2, 3, 4, 5]
>>>list2 = ['a', 'b', 'c', 'd', 'e']
>>>list3 = ['A', 'B', 'C', 'D']
>>>zipped1 = zip(list1, list2)
#zipped1类型为zip,转换为列表方便进行其他操作
>>>zipped1
<zip object at 0x00000201990FCF08>
>>>list(zipped1)
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]
>>>zipped2 = zip(list1, list2, list3)
#zip可以处理任意长度的序列,生成新对象长度由最短序列决定
>>>list(zipped2)
[(1, 'a', 'A'), (2, 'b', 'B'), (3, 'c', 'C'), (4, 'd', 'D')]

zip的常用场景为同时遍历多个序列,有时会和enumerate同时使用:

>>>list1 = [1, 2, 3, 4, 5]
>>>list2 = ['a', 'b', 'c', 'd', 'e']
>>>for i, (a, b) in enumerate(zip(list1, list2)):
... 	print('{0}: {1}, {2}'.format(i, a, b))
0: 1, a
1: 2, b
2: 3, c
3: 4, d
4: 5, e

另一种常用的情况是用zip函数来管理表数据,进行之间的变换,更方便的进行插入和删除操作,如下图,zip做的其实就是将数据便转了90°,将以前的列变成了行,在python中,对行的处理比对列简易的多。使用方法为使用*拆分已‘配对’好的数据表。table1 = zip(*list(table2))
行、列变换

>>>list1 = [1, 2, 3, 4, 5]
>>>list2 = ['a', 'b', 'c', 'd', 'e']
>>>list3 = ['A', 'B', 'C', 'D', 'E']
#转90°,行变列
>>>table1 = zip(list1, list2, list3)
>>>list(table1) #zip
[(1, 'a', 'A'), (2, 'b', 'B'), (3, 'c', 'C'), (4, 'd', 'D'), (5, 'e', 'E')]
#添加新元素
>>>table2 = list(table1).append((6, 'f', 'F'))
>>>list(table2)
[(1, 'a', 'A'), (2, 'b', 'B'), (3, 'c', 'C'), (4, 'd', 'D'), (5, 'e', 'E'), (6, 'f', 'F')]
#转90°,列变回行
>>>table3 = zip(*list(table2))
>>>list(table3)
[(1, 2, 3, 4, 5, 6), ('a', 'b', 'c', 'd', 'e', 'f'), ('A', 'B', 'C', 'D', 'E', 'F')]

d)reversed函数用来将序列的元素倒序排列,返回的对象同样需要实例化才能继续操作。

list(reversed(range(10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

3.14 字典是python内建数据结构中最重要的,也称哈希表或者关联数组,是一种无序数据对象。字典是一种键值对的组合,键必须是唯一不可变对象,值可以是不唯一可变对象。使用del键或者pop键的方法删除值。keys和values方法会返回字典键、值的迭代器。使用update放法将两个字典合并,如果传入的字典含有与原字典相同的键,原来字典的值会被覆盖。

>>>dict1 = {1:'a', 'b':2, 'list1':[1, 2, 3], 'tup1':(4, 5, 6)}
#访问
>>>dict1['list1']
[1, 2, 3]
#增加
>>>dict1['h'] = 'happy'
>>>dict1
{1: 'a', 'b': 2, 'list1': [1, 2, 3], 'tup1': (4, 5, 6), 'h': 'happy'}
#删除
>>>dict1.pop('tup1')
(4, 5, 6)
>>>dict1
{1: 'a', 'b': 2, 'list1': [1, 2, 3], 'h': 'happy'}
>>>del dict1[1]
>>>dcit1
{'b': 2, 'list1': [1, 2, 3], 'h': 'happy'}
#返回键、值
>>>list(dict1.keys())
['b', 'list1', 'h']
>>>list(dict1.values())
[2, [1, 2, 3], 'happy']
#合并字典
>>>dict2 = {2:'b', 3:'c'}
>>>dict1.update(dict2)
>>>dict1
{'b': 2, 'list1': [1, 2, 3], 'h': 'happy', 2: 'b', 3: 'c'}

从序列生成字典:
当有两个序列想要在字典中按元素配对时,第一种方法可以:

dict1 = {}
for key, value in zip(key_list, value_list):#上面提到的zip同时遍历多个序列的方法
	dict1[key] = value

还有一种更简单的:

dict2 = dict(zip(key_list, value_list))
利用Python进行数据分析.pdf》是一本介绍如何使用Python进行数据分析的书籍。Python是一种通用的编程语言,它具有简单易学、功能强大和丰富的生态系统等特点,因此被广泛应用数据分析领域。 本书首先介绍了Python基础知识,包括Python的安装和配置、如何使用Python进行数据处理和分析等内容。然后,书详细介绍了Python一些常用的数据处理库和数据分析工具,如NumPy、Pandas和Matplotlib等。读者可以学习如何使用这些库进行数据的读取、清理、转换和可视化等操作。 此外,本书还介绍了一些统计分析和机器学习算法的应用,如线性回归、逻辑回归、决策树和聚类等。读者可以学习如何使用Python实现这些算法,并使用它们进行数据分析和预测。 对于想要从事数据分析工作的人来说,《利用Python进行数据分析.pdf》是一本不可或缺的参考书。通过学习本书,读者可以掌握使用Python进行数据处理和分析的基本技能,提高自己在数据分析领域的竞争力。此外,由于Python具有广泛的应用领域,通过学习一种通用的编程语言,读者还可以在其他领域使用Python进行开发和编程。 总之,《利用Python进行数据分析.pdf》是一本系统全面介绍如何使用Python进行数据分析的书籍,能够帮助读者快速入门并掌握数据分析的基本技能。它对于想要从事数据分析工作的人来说是一本宝贵的资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值