python代码每一行之间是没有分号隔开的!
print(“hello world”)
print(“hello EEG”)
注释:“#”,批量/解释注释:ctrl+1
MATLAB中使用 end 来控制不同的层次,而python使用 “Tab”来控制不同语句的层次
https://www.runoob.com/python/python-operators.html
循环:https://www.runoob.com/python3/python3-loop.html
判断:https://www.runoob.com/python/python-if-statement.html
跳转语句:continue跳出当次循环继续下一次、break直接跳出当前循环
碰到死循环或者程序长时间不响应:ctrl+c等方法
有时候,我们需要从互联网上下载其他研究者打包好的模块,一般使用这三个执行。优先conda–pip–wheel
安装以下软件库:
- mne 加载EEG
- numpy 矩阵运算
- matplotlib 绘图
- seaborn 绘图
- pandas 行为数据处理
- scipy 读取matlab文件
- nibabel 读取fMRI文件
- scikit-learn 机器学习
nii加载结构项,用的较少(略)
补:eeg数据的读取
很少用python直接读取eeg数据,大多都在matlab中进行预处理和特征提取后,保存为.mat文件再读入python中
相关内容可直接百度read_epochs_eeglab
补:npy数据读取
csv数据读取
地址前的r表示进入只读模式,否则会由于转义字符 报错
读取.mat文件
mat_file是dict字典类型,提取里面的data,并指定保存地址
读取txt文件
txt_test1中分隔符为空格,默认可不指定
txt_test2中分隔符为“,”,需要指定分隔符delimiter = “,”
numpy
matplotlib
绘图流程:
1)库加载
2)绘制步骤
3)图像绘制(Spyder中可以不写)
sklearn
四种基础数据结构
- list(列表) #可变:可改变里面的数据值
- tuple(元组)#不可变:一经创建,不可改变,要改只能重新创建
- set(集合) #可变
- dict(字典) #可变
list列表
列表(list)是python中使用最频繁的数据类型,它是放在方括号([])内、用逗号分隔的一系列元素。列表中元素的类型可以不同,它支持数字、字符串甚至可以包含列表。换言之,列表允许嵌套。python中列表是可变的,且元素可重复。
列表的创建:
列表的截取:
列表的方法:
列表操作符
列表的内建函数
查看函数说明的三种方法
tuple元组
不可变的!一经创建,不能更改!
通过括号连接 a = (1,2,3,4)
可以索引,不能更改!
set集合
使用大括号 { } 或者 set() 函数创建集合,a = {1,2,4,‘a’}。集合是无序的、不支持+,*, index, slice
集合的常见操作:
add、update方法:增加
remove方法:删除
len方法:获取长度
dic字典
dic是一种可变的数据结构,可以储存任意类型的变量。集合也是无序、不可重复的,d = {key1 : value1, key2 : value2 }。
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
dic的创建:
字典的特性:
不支持+,*, index, slice(因为集合无序不重复的)
支持in和not in
字典的索引:字典只能通过key索引
字典的方法:
字典的遍历:
类(面向对象编程):
类是某类事物的统称,对象是实物。
例如:动物是一个类,狗或者猫则是对象。猫和狗是对对象的实例化。
关键词 class 类实例化后的类叫作对象对象可以调用方法和属性
定义一个基础类:
init()函数:
所有类都有一个名为 init() 的函数,它始终在启动类时执行。
使用 init() 函数将值赋给对象属性,或者在创建对象时需要执行的其他操作:
对象方法:
对象也可以包含方法。对象中的方法是属于该对象的函数。
修改对象属性:
类的继承:
继承的主要作用是实现代码的重用。继承使得子类拥有父类的方法和属性。·