43 linhas
1.4 KiB
Python
43 linhas
1.4 KiB
Python
import csv
|
|
from collections import defaultdict
|
|
import numpy as np
|
|
from scipy.signal import *
|
|
from numpy.fft import *
|
|
from scipy import *
|
|
from pylab import *
|
|
import pywt
|
|
fout_data = open("train.csv",'a')
|
|
vec = []
|
|
chan = ['Fp1','AF3','F3','F7','FC5','FC1','C3','T7','CP5','CP1','P3','P7','PO3','O1','Oz','Pz','Fp2','AF4','Fz','F4','F8','FC6','FC2','Cz','C4','T8','CP6','CP2','P4','P8','PO4','O2']
|
|
columns = defaultdict(list) # each value in each column is appended to a list
|
|
|
|
with open("features_raw.csv") as f:
|
|
reader = csv.DictReader(f) # read rows into a dictionary format
|
|
for row in reader: # read a row as {column1: value1, column2: value2,...}
|
|
for (k,v) in row.items(): # go over each column name and value
|
|
columns[k].append(v) # append the value into the appropriate list
|
|
# based on column name k
|
|
for i in chan:
|
|
x = np.array(columns[i]).astype(np.float)
|
|
coeffs = pywt.wavedec(x, 'db4', level=6)
|
|
cA6, cD6, cD5,cD4,cD3,cD2,cD1 = coeffs
|
|
cD5 = np.std(cD5)
|
|
cD4 = np.std(cD4)
|
|
cD3 = np.std(cD3)
|
|
cD2 = np.std(cD2)
|
|
cD1 = np.std(cD1)
|
|
if i =="O2":
|
|
fout_data.write(str(cD5)+",")
|
|
fout_data.write(str(cD4)+",")
|
|
fout_data.write(str(cD3)+",")
|
|
fout_data.write(str(cD2)+",")
|
|
fout_data.write(str(cD1))
|
|
else:
|
|
fout_data.write(str(cD5)+",")
|
|
fout_data.write(str(cD4)+",")
|
|
fout_data.write(str(cD3)+",")
|
|
fout_data.write(str(cD2)+",")
|
|
fout_data.write(str(cD1)+",")
|
|
fout_data.write("\n")
|
|
fout_data.close()
|