{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":59093,"databundleVersionId":7469972,"sourceType":"competition"}],"dockerImageVersionId":30646,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd, numpy as np, os\nimport matplotlib.pyplot as plt\n\ntrain = pd.read_csv('/kaggle/input/hms-harmful-brain-activity-classification/train.csv')\n","metadata":{"execution":{"iopub.status.busy":"2024-02-06T22:12:54.497432Z","iopub.execute_input":"2024-02-06T22:12:54.497798Z","iopub.status.idle":"2024-02-06T22:12:55.238545Z","shell.execute_reply.started":"2024-02-06T22:12:54.497769Z","shell.execute_reply":"2024-02-06T22:12:55.237420Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from scipy.signal import butter, lfilter, resample\n\ndef butter_lowpass_filter(data, L_freq=0.5,H_freq=30, sampling_rate=None, order=4):\n    nyquist = 0.5 * 200\n    L_cutoff = L_freq / nyquist\n    H_cutoff = H_freq / nyquist\n    b, a = butter(order, [L_cutoff, H_cutoff], btype='bandpass', analog=False)\n    filtered_data = lfilter(b, a, data, axis=0)\n    t = np.shape(data)[0]\n    \n    if sampling_rate:\n        new_t = int(t/200 * sampling_rate)\n        filtered_data = resample(filtered_data,new_t)\n    return filtered_data","metadata":{"execution":{"iopub.status.busy":"2024-02-06T22:22:42.719536Z","iopub.execute_input":"2024-02-06T22:22:42.719900Z","iopub.status.idle":"2024-02-06T22:22:42.727722Z","shell.execute_reply.started":"2024-02-06T22:22:42.719872Z","shell.execute_reply":"2024-02-06T22:22:42.726692Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"eegs = dict()\n\nfolder = '/kaggle/input/hms-harmful-brain-activity-classification/train_eegs/'\nparquets = os.listdir(folder)\n\nfor i,p in enumerate(parquets):\n    data = pd.read_parquet(folder+p).values \n    m = np.nanmean(data)\n    data = np.nan_to_num(data,nan=m)\n\n    new_eeg = butter_lowpass_filter(data,\n                                    L_freq=0.53,\n                                    H_freq = 25,\n                                    sampling_rate=50)\n    \n    dict_key = int(p.split('.')[0])\n    eegs[dict_key] = new_eeg\n    \n    if i%100==0:\n        print(f'Processing EEG #: {i}')\n    ","metadata":{"execution":{"iopub.status.busy":"2024-02-06T22:41:49.280692Z","iopub.execute_input":"2024-02-06T22:41:49.281481Z","iopub.status.idle":"2024-02-06T22:41:51.923731Z","shell.execute_reply.started":"2024-02-06T22:41:49.281444Z","shell.execute_reply":"2024-02-06T22:41:51.922252Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"np.save('eegs',eegs)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}