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
Comparison Operator | Function |
---|---|
< | less than |
<= | less than or equal to |
> | greater than |
>= | greater than or equal to |
== | equal |
!= | not equal |
Logical Operator | Description |
---|---|
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!
z = | [3, | 7, | 4, | 2] |
---|---|---|---|---|
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
Operating System | Download Link | Notes |
---|---|---|
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