前面,我们生信技能树的讲师小洁老师与萌老师新开了一个学习班:《掌握Python,解锁单细胞数据的无限可能》,身为技能树的一员,近水楼台先得月,学起!下面是我的学习笔记,希望可以给你带来一点参考
前面的学习笔记:
今天继续学习!一口气学完day3部分视频吧!
touch day3.ipynb
正式开始上课 10:06
在jupyter lab 里面使用小环境里面的库
我这里用的vscode 连接服务器,使用 jupyter 插件,选择库就是页面的右上角,直接进行选择:
这里开始到day3 视频的01:06:22部分,都是以前知识点和操作的复习
1.列表的排序、统计和去重复 01:06:22
1.1 排序
.sort()方法:修改原变量 sorted()函数:不修改原变量 降序:reverse=True
1.2 统计和去重
可以使用 numpy
模块里面的unique
函数,适用于数组和列表
np.unique()
:去重np.unique(return_counts=True)
:去重并统计每个取值的次数
pandas
:为series提供相应方法.tolist()
:series向list转换list()
:array 向 list转换
也可以使用集合,集合自动去重
2.矩阵 01:20:19
numpy
矩阵:没有行名和列名numpy
矩阵:推荐只存放一种数据类型的数据,但可允许多种数据类型
2.1 新建矩阵
使用numpy
模块中的array()
函数
2.2 取子集
使用下标和切片法:
2.3 矩阵和数据转换
矩阵转为数据框,可以加上行名和列名 数据框转为矩阵,有三种方法。Note:会丢失行名和列名 df2.values df2.to_numpy() np.array(df2)
2.4 转置
m1.T
3.数据框
3.1 新建数据框
方式1:
DataFrame
函数:创建一个字典,然后传递给pandas中的DataFrame()函数可以使用index参数指定行名
方式2:从csv文件读取
import pandas as pd
df2 = pd.read_csv("day3_preview/gene.csv")
print(df2)
# 设置第一列为行名
df2 = pd.read_csv("day3_preview/gene.csv",index_col=0)
print(df2)
3.2 数据框提取列
提取一列:点号或者 []
,如果列名有空格,不能使用点号
print(df1.gene)
print(df1['gene'])
type(df1.gene) # 返回series
df1.gene.tolist() # series 转为list
df1[['gene']] # 返回数据框
提取多列:在方括号里面写有列名组成的列表
3.3 提取行和列
.iloc:基于整数位置 loc:基于标签(行名或者列名)或是布尔值
import pandas as pd
df1 = pd.DataFrame({
'gene': ['gene' + str(i) for i in range(1,5)],
'change': ['up','up','down','down'],
'score': [5,3,-1,-3]
})
print(df1)
# 读取第一行, 不写逗号默认读取行
# 以下方式返回的都是series
print(df1.iloc[0])
print(df1.iloc[0,])
print(df1.iloc[0,:])
提取多行多列:
.loc() 按照行名列名取子集
.loc按照布尔值取子集:使用多个条件时,可以用and/or/&/|运算符
3.4 属性
写法与method类型,不带括号
df1.shape
df1.index # 行名
df1.columns # 列名
3.5 初级统计方法
1)统计量计算
.median() .min() .max() .var() .std() .sum()
2)去重:.drop_duplicates()
print(df1.drop_duplicates(subset='change'))
3)计数:.value_counts()
df1.change.value_counts()
4)排序:.sort_value()
df1.sort_values('score')
df1.sort_values('score',ascending=False)
今天就学到这里!
文末友情宣传
强烈建议你推荐给身边的博士后以及年轻生物学PI,多一点数据认知,让他们的科研上一个台阶: