社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python单细胞学习笔记-day2

生信技能树 • 3 月前 • 221 次点击  

前面,我们生信技能树的讲师小洁老师与萌老师新开了一个学习班:《掌握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:用于机器学习

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

    Python社区是高质量的Python/Django开发社区
    本文地址:http://www.python88.com/topic/177904
     
    221 次点击