写在前面
为了提高浏览量,以后在每天的最后加入微生物基因组学的相关知识,走过路过不要错过,看不了吃亏看不了上当~

第三章

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进行数据分析(四)相关推荐

  1. 利用python进行数据分析——第十四章_数据分析案例

    文章目录 本章中的数据文件可从下面的github仓库中下载 利用python进行数据分析(第二版) 一.从Bitli获取 1.USA.gov数据 1.1纯python时区计数 1.2使用pandas进 ...

  2. 利用Python进行数据分析(四):数据加载、存储与文件格式

    标题利用Python进行数据分析(四):数据加载.存储与文件格式 学习笔记来源于:简书https://www.jianshu.com/p/047d8c1c7e14 输入输出通常可以划分为几个大类:读取 ...

  3. 利用python进行数据分析 英文-如何学习和评价《利用python进行数据分析》这本书?...

    作为用Python做数据分析的必读书籍之一,这本书的开篇有向读者说明,这本书关注的是利用Python操作.处理.清洗和操作数据时的基本要点.目标是提供一份Python编程语言以及Python面向数据的 ...

  4. 利用python进行数据分析_利用python进行数据分析复现(1)

    一直以来,都想学习python数据分析相关的知识,总是拖拖拉拉,包括这次这个分享也是.<利用python进行数据分析 第2版>是一次无意之间在简书上看到的一个分享,我决定将很详细.一直都 ...

  5. python数据分析-如何学习和评价《利用python进行数据分析》这本书?

    作为用Python做数据分析的必读书籍之一,这本书的开篇有向读者说明,这本书关注的是利用Python操作.处理.清洗和操作数据时的基本要点.目标是提供一份Python编程语言以及Python面向数据的 ...

  6. 数据基础---《利用Python进行数据分析·第2版》第12章 pandas高级应用

    之前自己对于numpy和pandas是要用的时候东学一点西一点,直到看到<利用Python进行数据分析·第2版>,觉得只看这一篇就够了.非常感谢原博主的翻译和分享. 前面的章节关注于不同类 ...

  7. 数据基础---《利用Python进行数据分析·第2版》第11章 时间序列

    之前自己对于numpy和pandas是要用的时候东学一点西一点,直到看到<利用Python进行数据分析·第2版>,觉得只看这一篇就够了.非常感谢原博主的翻译和分享. 时间序列(time s ...

  8. 数据基础---《利用Python进行数据分析·第2版》第7章 数据清洗和准备

    之前自己对于numpy和pandas是要用的时候东学一点西一点,直到看到<利用Python进行数据分析·第2版>,觉得只看这一篇就够了.非常感谢原博主的翻译和分享. 在数据分析和建模的过程 ...

  9. 【Python】利用python进行数据分析——以新型冠状病毒疫情为例

    [Python]利用python进行数据分析--以新型冠状病毒疫情为例 重要说明 只提交该文档这一个文件,做完后提交到学习通"结课大作业"中. 1. 文件命名: 必须以学号-姓名- ...

  10. 整理总结:利用Python进行数据分析及思维导图

    参考资料:机械工业出版社的<利用Python进行数据分析>(思维导图在最后面) 本篇目录 参考资料:机械工业出版社的<利用Python进行数据分析>(思维导图在最后面) 第一章 ...

最新文章

  1. zigbee 编译source_zigbee_sensor_monitor_v1_2_1 vs2008 qt-win-opensource-src-4.4.3
  2. C++的安全类型转换的讨论
  3. bca ac如何联合索引_BCA的完整形式是什么?
  4. DVB vs. SVB+Shader Instancing
  5. 北京环球度假区宣布首批21家旅游渠道官方授权合作伙伴
  6. 默安科技关键信息基础设施安全防护论文入选中文核心期刊
  7. 拼多多卖家必知:店铺评分和评价那点事
  8. Visual Paradigm创建UML的流程和一点实用技巧
  9. 宇视摄像机密码忘记找回方式(详细找回步骤)
  10. type在python是什么意思_python中type()是什么意思
  11. 软件工程毕业论文mysql英文翻译_软件工程专业毕业设计外文文献翻译
  12. MySQL时间戳与时间格式的转换
  13. 淘宝去IOE,淘宝的量子恒道和数据魔方
  14. lt;转gt;凯文#183;凯利斯坦福演讲-预言未来20年科技潮流
  15. Python爬虫豆瓣影评
  16. gcd(int a, int b) //求最大公约数
  17. Leetcode——回旋镖
  18. c语言堆栈基本代码入栈出栈_C语言实现常用数据结构:栈-顺序栈实现(第6篇)...
  19. 巨杉数据库与广电运通完成产品兼容认证
  20. C语言两个自增相加,C语言前自增与后自增

热门文章

  1. 如何实现算法中的公平性
  2. Net分布式系统之七:日志采集系统(1)
  3. sigmoid函数和阶跃函数的Python代码比较 ← 斋藤康毅
  4. 前端树形图(未完成完善,会持续更新)
  5. iNFTnews|一键生成数字藏品,VERTU Web3手机是未来吗?
  6. PoseCNN(A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes)复现记录
  7. python3打印金字塔_python3 练习题100例 (二十五)打印一个n层金字塔
  8. 国内cn域名过期失效日期计算方式
  9. 51单片机智能蓝牙小车
  10. 苹果 iOS/iPadOS 14.4 beta 2新功能