3.Python
python是一种接近伪代码的脚本语言。python开发效率高,简单易读,所以有这样一种说法:
Life is Short, You Need Python (Bruce Ecke)
原生的python和perl语言一样,对文本处理(字符串操作,正则表达式等)有很好的支持,而且比perl语言更加简单易读,所以目前在生物信息分析中应用非常广泛。
python和R语言一样有非常好的软件生态,这极大地扩展了python的应用场景。
我们能遇到的相当大一部分数据分析的问题,都可以直接用前人已经实现好的python package解决。熟悉这些常用的工具可以让我们从繁琐的编码中解放出来,用很少的代码量解决实际的问题。
和学习R语言一样,为了能用好这些已有的工具,我们首先需要熟悉原生python的语法和常用的数据结构。
本教程默认使用python3
0) python语法规范
python非常注意规范的书写语法,以缩进为例,python强制要求使用tabs/spaces来缩进。推荐使用tab或四个空格来缩进。
1) Basic Practice Guide
1.0) 在终端运行python脚本
创建一个python脚本welcome.py
,在文件中写入如下内容:
在相同目录下运行:
你也可以将python的脚本文件做成一个可执行文件,直接执行, 即在python脚本的第一行添加 python的路径:
现在就可以不需要指明python解释器,直接运行python脚本了:
1.1) Basic print
1.2) Simple Math
1.3) if statement
<
less than
<=
less than or equal to
>
greater than
>=
greater than or equal to
==
equal
!=
not equal
and
If both the operands are True then condition becomes True.
or
If any of the two operands are True then condition becomes True.
not
Used to reverse the logical (not False becomes True, not True becomes False)
1.4) else and elif
1.5) Swap values
1.6) List
请务必注意,python的索引都是从0开始的,而不是1!
index
0
1
2
3
Accessing Values in List:
Slicing Lists:
Minimum, Maximum, Length, and Sum of a list:
Add to the End of List:
list comprehension:
1.7) Dictionary
字典是另一种可变容器模型,可存储任意类型对象。
字典的每个键值 key->value
对用冒号 :
分割,每个键值对之间用逗号 ,
分割,整个字典包括在花括号 {}
中。
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
定义和获取字典中的值:
修改字典:
Dict comprehension:
2) Homework
在电脑上安装Anaconda,在jupyter notebook中运行本教程中的相关代码,观察输出.
3) More Reading
Advanced Tutorial - Python - by Binbin Shi
4) Recommended Software for Python
4.1) Anaconda
我们建议安装Anaconda,并使用Jupyter Notebook运行代码,体会python的代码风格和规范。
Anaconda是一个管理和安装python包的管理软件,它也包含一些非常有用的工具如jupyter notebook
官网下载地址,也可以在TUNA镜像站免流量下载Anaconda
Mac
Linux
注意需要添加环境变量
Windows
用conda
安装python package,以h5py
为例:
用conda
更新h5py
至最新版本:
4.2) jupyter notebook
jupyter notebook 是一款基于浏览器的交互性极强的python开发环境,在科研和工业界都广泛使用,可以帮助使用者方便的可视化结果,快速书写和调整代码,非常推荐使用。
打开 jupyter notebook
或者使用软件版的Anaconda中集成的jupyter软件打开。
使用 jupyter notebook
保存,增加,删除,复制,粘贴代码框,上下移动代码框,运行,终止代码框,重启kernel(将会清空内存),切换代码框版式;
使用shift+enter运行代码框,使用enter换行;
可以搭配插件nbextenstion使用,提供更多功能。
示例:
展示图片:
展示dataframe(与pandas配合):
方便的可视化(与matplotlib,seaborn等配合):
支持markdown:
Last updated