Signal processing moving operators

Moving functionalities with moving sum, mean, variance, standard deviation, skew and kurtosis.

scared.signal_processing.moving_operators.moving_sum(data, window_size, axis=-1)[source]

Move sum along specified axis with ‘window_size’ windows length.

Parameters:
  • data (numpy.ndarray) – N-dimensional array.

  • window_size (int) – windows length.

  • axis (int) – Axis over which to move window (default: -1).

Returns:

N-dimensional array. The length on ‘axis’ dimension is: data.shape[‘axis’] - ‘window_size’ + 1.

Return type:

(numpy.ndarray)

scared.signal_processing.moving_operators.moving_mean(data, window_size, axis=-1)[source]

Move mean along specified axis with ‘window_size’ windows length.

Parameters:
  • data (numpy.ndarray) – N-dimensional array.

  • window_size (int) – windows length.

  • axis (int) – Axis over which to move window (default: -1).

Returns:

N-dimensional array. The length on ‘axis’ dimension is: data.shape[‘axis’] - ‘window_size’ + 1.

Return type:

(numpy.ndarray)

scared.signal_processing.moving_operators.moving_var(data, window_size, axis=-1)[source]

Move variance along specified axis with ‘window_size’ windows length.

Parameters:
  • data (numpy.ndarray) – N-dimensional array.

  • window_size (int) – windows length.

  • axis (int) – Axis over which to move window (default: -1).

Returns:

N-dimensional array. The length on ‘axis’ dimension is: data.shape[‘axis’] - ‘window_size’ + 1.

Return type:

(numpy.ndarray)

scared.signal_processing.moving_operators.moving_std(data, window_size, axis=-1)[source]

Move standard deviation along specified axis with ‘window_size’ windows length.

Parameters:
  • data (numpy.ndarray) – N-dimensional array.

  • window_size (int) – windows length.

  • axis (int) – Axis over which to move window (default: -1).

Returns:

N-dimensional array. The length on ‘axis’ dimension is: data.shape[‘axis’] - ‘window_size’ + 1.

Return type:

(numpy.ndarray)

scared.signal_processing.moving_operators.moving_skew(data, window_size, axis=-1)[source]

Move skew along specified axis with ‘window_size’ windows length.

skew

= µ3 / µ2^(2/3) with µi the i^th central moment.

µ2

= σ^2

µ3

= m3 - 3*m2*m1 + 2*m1^3 with mi the i^th moment (m=E[X], m2 = E[X^2])

µ3

= m3 - 3*m2*m1 + 3*m1^3 - 3*m1^3 + 2*m1^3

µ3

= m3 - (3*m2*m1 - 3*m1^3) - 3*m1^3 + 2*m1^3

µ3

= m3 - 3*m1*(m2 - m1^2) - m1^3 Then

skew

= (m3 - 3*m1*σ^2 - m1^3) / (σ^2)^(3/2)

Parameters:
  • data (numpy.ndarray) – N-dimensional array.

  • window_size (int) – windows length.

  • axis (int) – Axis over which to move window (default: -1).

Returns:

N-dimensional array. The length on ‘axis’ dimension is: data.shape[‘axis’] - ‘window_size’ + 1.

Return type:

(numpy.ndarray)

scared.signal_processing.moving_operators.moving_kurtosis(data, window_size, axis=-1)[source]

Move kurtosis along specified axis with ‘window_size’ windows length.

kurtosis

= µ4 / σ^4 with µi the i^th central moment

µ4

= m4 - 4*m3*m1 + 6*m2*m1^2 - 3*m1^4 with mi the i^th moment (m=E[X], m2 = E[X^2])

6*m2*m1^2

= 6*m1^2*m2 - 6*m1^4 + 6*m1^4

6*m2*m1^2

= 6*m1^2*(m2 - m1^2) + 6*m1^4

µ4

= m4 - 4*m3*m1 + 6*m1^2*σ^2 + 3*m1^4

kurtosis

= (m4 - 4*m3*m1 + 6*m1^2*σ^2 + 3*m1^4) / σ^4

Parameters:
  • data (numpy.ndarray) – N-dimensional array.

  • window_size (int) – windows length.

  • axis (int) – Axis over which to move window (default: -1).

Returns:

N-dimensional array. The length on ‘axis’ dimension is: data.shape[‘axis’] - ‘window_size’ + 1.

Return type:

(numpy.ndarray)