Jupyter Note
import csv
import os
import pandas as pd
import numpy as np
from random import randint
import matplotlib.pyplot as plt
txts = []
with open('/home/zht/dataset/hf_ecg/hf_round1_label.txt', 'r') as sub:
for line in sub:
content = line.split('\t')
txt_file_path = content[0]
txts.append(txt_file_path)
data = pd.read_csv('/home/zht/dataset/hf_ecg/train/'+txts[randint(0,len(txts))], sep=' ')
data['III'] = data['II'] - data['I']
data['aVR'] = -(data['II'] + data['I']) / 2
data['aVL'] = data['I'] - data['II'] / 2
data['aVF'] = data['II'] - data['I'] / 2
data
I | II | V1 | V2 | V3 | V4 | V5 | V6 | III | aVR | aVL | aVF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | -14 | -4 | 3 | -19 | -35 | -40 | -27 | -26 | 10 | 9.0 | -12.0 | 3.0 |
1 | -15 | -18 | 4 | -16 | -28 | -43 | -32 | -28 | -3 | 16.5 | -6.0 | -10.5 |
2 | -19 | -21 | 5 | -22 | -33 | -41 | -33 | -25 | -2 | 20.0 | -8.5 | -11.5 |
3 | -26 | -21 | 3 | -18 | -30 | -38 | -25 | -22 | 5 | 23.5 | -15.5 | -8.0 |
4 | -26 | -24 | 10 | -13 | -30 | -35 | -26 | -19 | 2 | 25.0 | -14.0 | -11.0 |
5 | -24 | -32 | 5 | -24 | -35 | -41 | -33 | -20 | -8 | 28.0 | -8.0 | -20.0 |
6 | -21 | -22 | 10 | -19 | -28 | -39 | -31 | -18 | -1 | 21.5 | -10.0 | -11.5 |
7 | -28 | -23 | 8 | -18 | -31 | -37 | -28 | -13 | 5 | 25.5 | -16.5 | -9.0 |
8 | -26 | -28 | 0 | -26 | -29 | -44 | -36 | -21 | -2 | 27.0 | -12.0 | -15.0 |
9 | -15 | -18 | 4 | -30 | -31 | -47 | -38 | -28 | -3 | 16.5 | -6.0 | -10.5 |
10 | -18 | -9 | 2 | -28 | -38 | -42 | -32 | -28 | 9 | 13.5 | -13.5 | 0.0 |
11 | -11 | -19 | 5 | -31 | -43 | -47 | -33 | -32 | -8 | 15.0 | -1.5 | -13.5 |
12 | -9 | -22 | 0 | -27 | -42 | -45 | -36 | -26 | -13 | 15.5 | 2.0 | -17.5 |
13 | -17 | -20 | -4 | -24 | -25 | -42 | -32 | -21 | -3 | 18.5 | -7.0 | -11.5 |
14 | -19 | -26 | 0 | -30 | -26 | -42 | -33 | -22 | -7 | 22.5 | -6.0 | -16.5 |
15 | -20 | -37 | 5 | -31 | -32 | -46 | -38 | -20 | -17 | 28.5 | -1.5 | -27.0 |
16 | -24 | -25 | 12 | -28 | -31 | -42 | -35 | -23 | -1 | 24.5 | -11.5 | -13.0 |
17 | -26 | -24 | 6 | -27 | -36 | -44 | -35 | -25 | 2 | 25.0 | -14.0 | -11.0 |
18 | -26 | -30 | -1 | -28 | -40 | -48 | -39 | -27 | -4 | 28.0 | -11.0 | -17.0 |
19 | -20 | -21 | -4 | -29 | -35 | -49 | -39 | -26 | -1 | 20.5 | -9.5 | -11.0 |
20 | -19 | -10 | 4 | -26 | -37 | -45 | -33 | -26 | 9 | 14.5 | -14.0 | -0.5 |
21 | -15 | -13 | 6 | -25 | -42 | -48 | -36 | -27 | 2 | 14.0 | -8.5 | -5.5 |
22 | -18 | -21 | 0 | -27 | -36 | -47 | -36 | -20 | -3 | 19.5 | -7.5 | -12.0 |
23 | -22 | -25 | -5 | -33 | -33 | -45 | -34 | -25 | -3 | 23.5 | -9.5 | -14.0 |
24 | -19 | -28 | 3 | -31 | -30 | -44 | -33 | -29 | -9 | 23.5 | -5.0 | -18.5 |
25 | -22 | -40 | -1 | -26 | -38 | -46 | -36 | -20 | -18 | 31.0 | -2.0 | -29.0 |
26 | -21 | -26 | -1 | -22 | -39 | -41 | -28 | -22 | -5 | 23.5 | -8.0 | -15.5 |
27 | -21 | -26 | 1 | -28 | -37 | -43 | -33 | -23 | -5 | 23.5 | -8.0 | -15.5 |
28 | -20 | -33 | 2 | -34 | -47 | -49 | -38 | -24 | -13 | 26.5 | -3.5 | -23.0 |
29 | -18 | -25 | 0 | -37 | -45 | -48 | -38 | -25 | -7 | 21.5 | -5.5 | -16.0 |
… | … | … | … | … | … | … | … | … | … | … | … | … |
4970 | -11 | 2 | 35 | 11 | -5 | 1 | 19 | -4 | 13 | 4.5 | -12.0 | 7.5 |
4971 | -18 | 7 | 37 | 11 | 6 | 8 | 26 | 2 | 25 | 5.5 | -21.5 | 16.0 |
4972 | -32 | -6 | 38 | 10 | 4 | 8 | 29 | 5 | 26 | 19.0 | -29.0 | 10.0 |
4973 | -13 | -5 | 32 | 10 | -5 | 0 | 24 | -1 | 8 | 9.0 | -10.5 | 1.5 |
4974 | 16 | -3 | 16 | 0 | -14 | -9 | 14 | -13 | -19 | -6.5 | 17.5 | -11.0 |
4975 | 27 | 0 | 14 | 1 | -14 | -8 | 10 | -8 | -27 | -13.5 | 27.0 | -13.5 |
4976 | 28 | -11 | 14 | 1 | -22 | -16 | -1 | -15 | -39 | -8.5 | 33.5 | -25.0 |
4977 | 28 | -1 | 31 | 5 | -17 | -11 | 6 | -10 | -29 | -13.5 | 28.5 | -15.0 |
4978 | 19 | 2 | 33 | 1 | -2 | -5 | 11 | -8 | -17 | -10.5 | 18.0 | -7.5 |
4979 | 13 | -3 | 20 | 5 | -8 | -7 | 8 | -10 | -16 | -5.0 | 14.5 | -9.5 |
4980 | 6 | -2 | 28 | 3 | -4 | -6 | 12 | -6 | -8 | -2.0 | 7.0 | -5.0 |
4981 | 0 | 6 | 27 | 11 | 5 | 0 | 18 | -4 | 6 | -3.0 | -3.0 | 6.0 |
4982 | -5 | -3 | 27 | 15 | -2 | -3 | 14 | -7 | 2 | 4.0 | -3.5 | -0.5 |
4983 | -2 | -6 | 28 | 3 | -5 | -5 | 10 | -10 | -4 | 4.0 | 1.0 | -5.0 |
4984 | 0 | -3 | 25 | 8 | 0 | -2 | 13 | -9 | -3 | 1.5 | 1.5 | -3.0 |
4985 | 0 | -5 | 28 | 11 | 0 | -1 | 12 | -8 | -5 | 2.5 | 2.5 | -5.0 |
4986 | 3 | -10 | 24 | 9 | -11 | -7 | 9 | -4 | -13 | 3.5 | 8.0 | -11.5 |
4987 | 3 | -1 | 25 | 10 | -3 | -2 | 14 | 6 | -4 | -1.0 | 3.5 | -2.5 |
4988 | -1 | 0 | 27 | 7 | 2 | 1 | 14 | 8 | 1 | 0.5 | -1.0 | 0.5 |
4989 | 0 | -1 | 32 | 9 | 0 | 1 | 13 | 2 | -1 | 0.5 | 0.5 | -1.0 |
4990 | -2 | 1 | 27 | 26 | 0 | 1 | 13 | -2 | 3 | 0.5 | -2.5 | 2.0 |
4991 | -6 | 7 | 30 | 22 | 14 | 5 | 21 | -2 | 13 | -0.5 | -9.5 | 10.0 |
4992 | -7 | 1 | 26 | 10 | 16 | 1 | 18 | 3 | 8 | 3.0 | -7.5 | 4.5 |
4993 | 7 | -1 | 23 | 2 | 4 | -3 | 14 | -7 | -8 | -3.0 | 7.5 | -4.5 |
4994 | 24 | 0 | 23 | -1 | -4 | -5 | 11 | -12 | -24 | -12.0 | 24.0 | -12.0 |
4995 | 17 | 0 | 19 | 1 | -6 | -3 | 9 | -7 | -17 | -8.5 | 17.0 | -8.5 |
4996 | 8 | -10 | 15 | -1 | -6 | -5 | 6 | -8 | -18 | 1.0 | 13.0 | -14.0 |
4997 | 4 | -4 | 20 | 9 | 6 | -2 | 12 | -6 | -8 | 0.0 | 6.0 | -6.0 |
4998 | 6 | 4 | 21 | 6 | 5 | 0 | 11 | -5 | -2 | -5.0 | 4.0 | 1.0 |
4999 | 7 | -1 | 19 | 4 | -6 | -2 | 13 | -8 | -8 | -3.0 | 7.5 | -4.5 |
5000 rows × 12 columns
# 先看单个通道的波形
data_trans = np.array(data, dtype=np.float).transpose()
fig = plt.figure(num=1, figsize=(100,8),dpi=80)
x_ = np.arange(5000)
for i in range(0,1):
plt.plot(x_, data_trans[i])
plt.show()
# 两个通道
fig = plt.figure(num=1, figsize=(100,8),dpi=80)
x_ = np.arange(5000)
for i in range(4,6):
plt.plot(x_, data_trans[i])
plt.show()
# 全部通道,可以发现波形具有明显的重复
fig = plt.figure(num=1, figsize=(100,8),dpi=80)
x_ = np.arange(5000)
for i in range(0,12):
plt.plot(x_, data_trans[i])
plt.show()
留言