# Creating Features Space
features = {}
# Raw Time Feature
features['raw'] = X[:,0], X[:,0]
# First Derivative in Time
features['derivative'] = normalize(np.gradient(X[:,0], axis = 2)), normalize(np.gradient(X[:,1], axis = 2))
# Integral in Time
features['integral'] = normalize(np.cumsum(X[:,0], axis = 2)), normalize(np.cumsum(X[:,1], axis = 2))
# All Together Feature Spae
def extract_features(*arguments):
desired = ()
for arg in arguments:
desired += features[arg]
return np.stack(desired, axis = 2)