python单细胞学习笔记-day4

学术   2025-01-13 18:33   广东  

前面,我们生信技能树的讲师小洁老师与萌老师新开了一个学习班:《掌握Python,解锁单细胞数据的无限可能》,身为技能树的一员,近水楼台先得月,学起!下面是我的学习笔记,希望可以给你带来一点参考

前面的学习笔记:

python单细胞学习笔记-day1

python单细胞学习笔记-day2

python单细胞学习笔记-day3

今天继续学习!一口气学完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,多一点数据认知,让他们的科研上一个台阶:

生信技能树
生物信息学学习资料分析,常见数据格式及公共数据库资料分享。常见分析软件及流程,基因检测及癌症相关动态。
 最新文章