利用python进行数据分析(四)
写在前面
为了提高浏览量,以后在每天的最后加入微生物基因组学的相关知识,走过路过不要错过,看不了吃亏看不了上当~
第三章
3.1.5集合是一种无序且元素唯一的容器,可以理解为集合是只有键的字典。通过set
函数或者大括号创建集合。集合具有很多操作方式,可以极大的方便我们对数据进行处理。
>>>a = {1, 2, 3, 4, 5}
>>>b = {3, 4, 5, 6, 7, 8}
#添加元素
>>>a.add(9)
>>>a
{1, 2, 3, 4, 5, 9}
#删除元素
>>>a.remove(9)
>>>a
{1, 2, 3, 4, 5}
#a和b的所有不同元素,即a和b的并集
>>>a.union(b) 等同于: a | b
{1, 2, 3, 4, 5, 6, 7, 8}
#a和b中同时包含的元素
>>>a.intersection(b) 等同于: a & b
{3, 4, 5}
#在a不在b中的元素
>>>a.difference(b) 等同于: a-b
{1, 2}
#所有在a或者b中,但不同时在a、b中的元素
>>>a.symmetric_difference(b) 等同于: a^b
{1, 2, 6, 7, 8}
#a包含于b则返回True
>>>a.issubset(b)
False
#a包含b则返回True
>>>a.issuperset(b)
False
#a、b没有交集则返回True
>>>a.isdisjoint(b)
False
3.1.6列表、集合和字典推导式
列表推导式允许我们更快速的创建列表,其基本语法为:
list_comp = [ expr for value in collection if condition ]
其过滤条件是可以省略的,只保留表达式。这与下面的for循环时等价的:
result = []
for val in collection:if condition:result.append(expr)
给定一个字符串列表,我们过滤出长度大于2的,且将字母改为大写。
>>>strings = ['a', 'as', 'bat', 'car', 'love', 'python']
>>>[ x.upper() for x in strings if len(x) > 2]
['BAT', 'CAR', 'LOVE', 'PYTHON']
字典、集合推导式是列表推导式的扩展,字典推导式如下:
dict_comp = { key-expr : value-expr for key, valus in collection if condition}
还是这个给定的字符串,创建一个将字符串与其位置相匹配的字典:
>>>strings = ['a', 'as', 'bat', 'car', 'love', 'python']
>>>{val : index for index, val in enumerate(strings)}
{'a': 0, 'as': 1, 'bat': 2, 'car': 3, 'love': 4, 'python': 5}
集合推导式看起来很像列表推导式,只是将中括号变成大括号:
set_comp = { expr for value in collection if condition }
还是这个给定的字符串,创建一个包含字符串长度的集合:
>>>strings = ['a', 'as', 'bat', 'car', 'love', 'python']
>>>{len(x) for x in strings}
{1, 2, 3, 4, 6}
3.1.6.1 嵌套列表推导式
假如我们含有一个由列表组成的列表(想象一下数据表),内容是人名,我们想将其中含有某种特征的名字提取出来,比如名字中含有两个字母‘e’。
第一种方法:
>>>all_data = [['sda', 'dsadd', 'ioeja'], ['eijak', 'dawee', 'ralks'], ['eeksj', 'eolsa', 'ploij']]
>>>name_of_interest =[]
>>>for names in all_data:
... enough_es = [name for name in names if name.count('e') >=2]
... name_of_interest.extend(enough_es)
...
>>>name_of_interest
['dawee', 'eeksj']
嵌套列表推导式,第二种方法:
>>>result = [name for names in all_data for name in names if name.count('e') >=2 ]
>>>result
['dawee', 'eeksj']
要牢记,for表达式的顺序与写for循环时的顺序一样,即从外向内,且将过滤条件放在最内部。虽然可以嵌套多层的推导式,但当推导式超过3层的时候,就影响阅读了。
再来一个简单应用例子,将上面的名字列表扁平化为一个包含所有名字的列表:
>>>all_names = [name for names in all_data for name in names]
>>>all_names
['sda', 'dsadd', 'ioeja', 'eijak', 'dawee', 'ralks', 'eeksj', 'eolsa', 'ploij']
想象一下,如果我们是对数据表进行处理,将数据表中所有数据整理进一个列表或者集合中,也是这样去操作的,就可以省很多事。
微生物基因组 - 历史
1,1920年,基因组genome一词第一次引入学术界,它是由基因GENe和染色体chromosOME两个词组合而成的。
2,1975年,两个独立的研究组分别宣布发明了DNA测序技术;1977年,sanger改进了测序技术,到1978年,已经可以从一块胶上读出几百个碱基了。
3,1977年,sanger研究组完成了第一个全基因组–фX174噬菌体基因组,5386bp。
4,1986年,第一台自动DNA测序仪诞生。1987年自动测序仪上市,每天可测1~2万个碱基。
5,1986年,数位科学家建议开始人类基因组计划,1990年人类基因组计划正式启动。
6,1944年,完成流汗嗜血杆菌Rd的全基因组测序,1.8Mb,测序深度6。
7,1994年,启动微生物基因组计划。
8,1995年,生殖道支原体全基因组测序完成,600kb,含有470个基因,是最小的基因组。
9,1996年,酿酒酵母基因组测序完成,12Mb,含有6000个基因,分布于16条染色体。
10,1996年,詹氏甲烷球菌完成基因组测序。对它的基因组研究显示,它有关转录、翻译和复制的基因与真核生物类似,而与生物合成和代谢有关的基因与原核生物类似。这为生命划分为古生菌、细菌和真核生物的假说提供了有力支持。
通过对比,可以清晰的看到国外的领先,美国能源部与美国国立卫生院在1990年便拿出了几十亿美金的经费去发展基因组计划,这种魄力与眼光确实值得佩服。要知道哪怕到现在,这种投资对于我们都是很难的,刚刚完成了北斗导航,用了26完成全球组网,预算400~500亿。正视差距,仍有很长的路要走,努力努力再努力!
利用python进行数据分析(四)相关推荐
- 利用python进行数据分析——第十四章_数据分析案例
文章目录 本章中的数据文件可从下面的github仓库中下载 利用python进行数据分析(第二版) 一.从Bitli获取 1.USA.gov数据 1.1纯python时区计数 1.2使用pandas进 ...
- 利用Python进行数据分析(四):数据加载、存储与文件格式
标题利用Python进行数据分析(四):数据加载.存储与文件格式 学习笔记来源于:简书https://www.jianshu.com/p/047d8c1c7e14 输入输出通常可以划分为几个大类:读取 ...
- 利用python进行数据分析 英文-如何学习和评价《利用python进行数据分析》这本书?...
作为用Python做数据分析的必读书籍之一,这本书的开篇有向读者说明,这本书关注的是利用Python操作.处理.清洗和操作数据时的基本要点.目标是提供一份Python编程语言以及Python面向数据的 ...
- 利用python进行数据分析_利用python进行数据分析复现(1)
一直以来,都想学习python数据分析相关的知识,总是拖拖拉拉,包括这次这个分享也是.<利用python进行数据分析 第2版>是一次无意之间在简书上看到的一个分享,我决定将很详细.一直都 ...
- python数据分析-如何学习和评价《利用python进行数据分析》这本书?
作为用Python做数据分析的必读书籍之一,这本书的开篇有向读者说明,这本书关注的是利用Python操作.处理.清洗和操作数据时的基本要点.目标是提供一份Python编程语言以及Python面向数据的 ...
- 数据基础---《利用Python进行数据分析·第2版》第12章 pandas高级应用
之前自己对于numpy和pandas是要用的时候东学一点西一点,直到看到<利用Python进行数据分析·第2版>,觉得只看这一篇就够了.非常感谢原博主的翻译和分享. 前面的章节关注于不同类 ...
- 数据基础---《利用Python进行数据分析·第2版》第11章 时间序列
之前自己对于numpy和pandas是要用的时候东学一点西一点,直到看到<利用Python进行数据分析·第2版>,觉得只看这一篇就够了.非常感谢原博主的翻译和分享. 时间序列(time s ...
- 数据基础---《利用Python进行数据分析·第2版》第7章 数据清洗和准备
之前自己对于numpy和pandas是要用的时候东学一点西一点,直到看到<利用Python进行数据分析·第2版>,觉得只看这一篇就够了.非常感谢原博主的翻译和分享. 在数据分析和建模的过程 ...
- 【Python】利用python进行数据分析——以新型冠状病毒疫情为例
[Python]利用python进行数据分析--以新型冠状病毒疫情为例 重要说明 只提交该文档这一个文件,做完后提交到学习通"结课大作业"中. 1. 文件命名: 必须以学号-姓名- ...
- 整理总结:利用Python进行数据分析及思维导图
参考资料:机械工业出版社的<利用Python进行数据分析>(思维导图在最后面) 本篇目录 参考资料:机械工业出版社的<利用Python进行数据分析>(思维导图在最后面) 第一章 ...
最新文章
- zigbee 编译source_zigbee_sensor_monitor_v1_2_1 vs2008 qt-win-opensource-src-4.4.3
- C++的安全类型转换的讨论
- bca ac如何联合索引_BCA的完整形式是什么?
- DVB vs. SVB+Shader Instancing
- 北京环球度假区宣布首批21家旅游渠道官方授权合作伙伴
- 默安科技关键信息基础设施安全防护论文入选中文核心期刊
- 拼多多卖家必知:店铺评分和评价那点事
- Visual Paradigm创建UML的流程和一点实用技巧
- 宇视摄像机密码忘记找回方式(详细找回步骤)
- type在python是什么意思_python中type()是什么意思
- 软件工程毕业论文mysql英文翻译_软件工程专业毕业设计外文文献翻译
- MySQL时间戳与时间格式的转换
- 淘宝去IOE,淘宝的量子恒道和数据魔方
- lt;转gt;凯文#183;凯利斯坦福演讲-预言未来20年科技潮流
- Python爬虫豆瓣影评
- gcd(int a, int b) //求最大公约数
- Leetcode——回旋镖
- c语言堆栈基本代码入栈出栈_C语言实现常用数据结构:栈-顺序栈实现(第6篇)...
- 巨杉数据库与广电运通完成产品兼容认证
- C语言两个自增相加,C语言前自增与后自增
热门文章
- 如何实现算法中的公平性
- Net分布式系统之七:日志采集系统(1)
- sigmoid函数和阶跃函数的Python代码比较 ← 斋藤康毅
- 前端树形图(未完成完善,会持续更新)
- iNFTnews|一键生成数字藏品,VERTU Web3手机是未来吗?
- PoseCNN(A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes)复现记录
- python3打印金字塔_python3 练习题100例 (二十五)打印一个n层金字塔
- 国内cn域名过期失效日期计算方式
- 51单片机智能蓝牙小车
- 苹果 iOS/iPadOS 14.4 beta 2新功能