-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathFeatureExtractionHelperFunctions.py
More file actions
71 lines (62 loc) · 1.68 KB
/
FeatureExtractionHelperFunctions.py
File metadata and controls
71 lines (62 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
import numpy as np
import os
def file_len(fname):
"""
Counts and returns the number of lines in a file
:param fname: file path
:return: number of lines in the file (int)
"""
if os.path.exists(fname) and os.path.getsize(fname) > 0:
with open(fname) as f:
for i, l in enumerate(f):
pass
return i + 1
else:
return 0
def lag_one_autocorrelation(arra):
denom=((np.std(arra))**2)*arra.size
summ=0
mean=np.mean(arra)
for i in range(arra.size-1):
summ+=(arra[i]-mean)*(arra[i+1]-mean)
return summ/float(denom)
def skewness(arra):
denom=(np.std(arra))**3
num=0
mean=np.mean(arra)
for i in range(arra.size):
num+=(arra[i]-mean)**3
num=num/float(arra.size)
return num/denom
def kurtosis(arra):
denom=(np.std(arra))**6
num=0
mean=np.mean(arra)
for i in range(arra.size):
num+=(arra[i]-mean)**4
num=num/float(arra.size)
return (num/denom)-3
def log_energy(arra):
summ=0
for i in range(arra.size):
if (arra[i]==0):
pass
# summ+=np.log(0.01)
else:
summ+=np.log(arra[i]**2)
return summ
def num_zero_crossings(arra):
arra2=np.copy(arra)
arra2=arra2-np.mean(arra2)
return (np.where(np.diff(np.sign(arra2)))[0]).size
def correlation(arra, arra2):
mean1=np.mean(arra)
mean2=np.mean(arra2)
num=0
denom1=((np.std(arra))**2)*arra.size
denom2=((np.std(arra2))**2)*arra2.size
for i in range(arra.size):
num+=(arra[i]-mean1)*(arra2[i]-mean2)
return float(num)/(denom1*denom2)