前面,我们生信技能树的讲师小洁老师与萌老师新开了一个学习班:《掌握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:插入或删除单元格
使用快捷键插入新的单元格:
在当前单元格的下方插入新单元格: 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([[1, 2], [3, 4]])
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:用于机器学习
本次先学习到这里,先去干饭,下午再来学!