python单细胞学习笔记-day2

学术   2025-01-10 15:48   广东  

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

目前使用的软件为:使用vscode 的插件配置

touch day2.ipynb

06:05 首先简单介绍jupyter lab的使用

这种框框称为一个cell,有两种模式:

  • 命令模式:没有光标,可以使用快捷键
  • 编辑模式:出现光标,可以正常标记文字或者代码,使用ESC退出编辑模式

命令模式下的常用快捷键

jupyter lab支持Markdown语言

运行 cell

  • 运行选中的cells:shift+enter

  • cell的命令模式与Markdown模式切换:Y与M键

vscode中在这里选择,Y与M键也可以使用,选中cell,按住ESC退出,Y与M键来回切换试试看


  • 选中的cell下方插入新的cell:Alt+Enter
  • 运行所有的cell:CTRL + A选中所有cell,CTRL + Enter 运行(如果有错误则会卡在有错误的地方)
  • 增删改移cell
    • 上下方添加一个cell:A、B
    • 复制、黏贴、剪切cell:C、V、X
    • 删除当前cell:按两下D
    • 撤销cell操作:Z
    • 重做cell操作:Shift+Z
  • 调整cell的前后顺序:鼠标拖拽
  • 当前cell上、下移动:ctrl+shit+→
  • 显示行号:shift+L
  • 隐藏左侧边栏:ctrl+B

16:39 使用外部命令

在开头写一个英文状态下的!,就可以使用linux命令:

但是我这个vscode里面运行感觉有点慢呢

!ls

18:16 练习

任务1:显示行号

选中cell,按ESC(选中之后容易变成编辑模式,按ESC退出执行后面的快捷键),shift+L

任务2:显示隐藏左边栏

快捷键为 ctrl + B, 多按几次就发现会隐藏显示隐藏显示来回切换,get这个技能

任务3:使用外部命令

任务4:文件操作

任务5:上下移动单元格

vscode这里的快捷键为:Alt+up/down

任务6:插入或删除单元格

  1. 使用快捷键插入新的单元格:
  • 在当前单元格的下方插入新单元格:B
  • 在当前单元格的上方插入新单元格:A
  • 删除不需要的单元格:
    • 删除当前选中的单元格:D(快速按两次)

    任务7:切换单元格类型

    切换到 Markdown 类型:M

    切换到代码类型:Y

    31:55 python语法规则

    1.print()

    • 用于打印结果
    • jupter lab 里面默认自带打印效果
    • 如果有多个内容要打印,需要写print()

    2.缩进

    • 强制缩进,消除不必要的花括号,让代码更加整洁
    • 强制统一代码风格
    • 缩进是语法要求
    • 缩进里面tab与空格不能混用,必须统一
    • 一般默认缩进为4个空格

    3.注释

    • 单行注释:#
    • 多行注释:```或者“”“

    4.变量和赋值

    • 赋值使用=

    • python中的数据类型:

      • int(整数):不带小数的数字

      • float(浮点数):带小数的数字

      • bool(布尔值):True或False

      • str(字符串):用引号括起来的任何内容

    • type()获取对象的数据类型

    • 数据类型转换:

      • str()

      • int()

      • float()

      • bool():非0数字和非空字符串都会被转为True,0,空字符,空列表等被视为False

    • 变量名区分大小写,且必须以字母或_下划线开头

    5.函数、方法、属性

    5.1 函数(Function)

    函数是一个独立的可调用功能模块,可以直接调用:round()abs()type()

    这里面的代码,都自己手动敲一遍比较有感觉:


    5.2 方法(Method)

    方法是与某个对象绑定的动作或行为,需要通过对象调用。


    5.3 属性(Attribute)

    属性表示某个对象自身的状态或特征,只是查询,不是动作,不需要加括号,只需要用点号访问

    举例:

    • array.shape 是查看数组的形状,是数组的一个特征
    • string.islowe 是查询字符串是否是全小写,是字符串的一个状态

    Note:运行这里的代码之前需要先安装python模块:

    # bash终端
    conda activate sc
    # 安装 pandas
    pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple pandas
    # 安装 numpy
    pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple numpy

    在这里运行代码不小心报了个错:运行python报错:TypeError: Field elements must be 2- or 3-tuples, got '3'


    然后问人工智能大模型kimi:

    这个错误通常发生在使用 NumPy 创建数组时,格式不正确导致的。错误信息提示字段元素必须是 2 元组或 3 元组,但你提供了一个单独的数字 '3',这不符合 NumPy 数组的创建规则。

    错误原因

    • 错误的数组创建格式:你可能尝试直接将多个数组作为参数传递给 np.array(),而没有将它们放在一个列表或元组中。

    解决方法

    • 正确的数组创建格式:当你想要创建一个二维数组时,应该将所有子数组放在一个列表或元组中,然后再传递给 np.array()。例如:
      import numpy as np
      # 错误写法
      # n3 = np.array([1, 2], [3, 4])

      # 正确写法
      n3 = np.array([[12], [34]])
      print(n3)
      这样可以确保每个子数组都被正确地包含在一个更大的数组结构中。

    如果你能提供具体的代码片段,我可以帮助你更准确地定位和解决问题。

    好的 知道了,跟我的示例一模一样,np.array里面应该有两个[[]]。

    正确写法如下:


    方法与属性对比总结


    6.包、库、模块


    • 模块是一个.py文件
    • 包时多个模块的集合,是一个文件夹,一定包含 _init_.py 文件
    • 库是具有特定功能包的集合

    他们的使用方法基本一致

    6.1 模块

    一个.py文件即为一个模块,可以包含变量、函数、类等。

    ! touch my_module.py

    6.2 包:包治百病

    定义:包是一个包含多个模块的文件夹,必须包含一个 _init_.py 文件

    有几个 _init_.py 文件,就有几个包


    6.3 库

    定义:库是一个更大的集合,通常包含多个包,用于实现特定功能(例如数据处理,机器学习等)。

    举例:

    • NumPy:提供高效的数组操作
    • Pandas:用于数据分析
    • Scikit-learn:用于机器学习

    本次先学习到这里,先去干饭,下午再来学!

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