Spaces:
Runtime error
Runtime error
import numpy as np | |
from scipy.stats import skew, kurtosis | |
class StatisticalMeasures: | |
""" | |
A class dedicated to computing various statistical measures on a given feature array. | |
This utility class provides a method to compute a predefined set of statistical measures | |
which are commonly used in data analysis and feature extraction. | |
Methods: | |
-------- | |
compute_statistical_measures(feature_array, measures=None): | |
Computes selected statistical measures from a provided numerical array. | |
""" | |
def compute_statistical_measures(feature_array, measures=None): | |
if measures is None: | |
measures = ['mean', 'std', 'var', 'min', 'max', 'range', '25th_percentile', '50th_percentile', '75th_percentile', 'skew', 'kurtosis'] | |
stats = {} | |
if 'mean' in measures: | |
stats['mean'] = np.mean(feature_array) | |
if 'std' in measures: | |
stats['std'] = np.std(feature_array) | |
if 'var' in measures: | |
stats['var'] = np.var(feature_array) | |
if 'min' in measures: | |
stats['min'] = np.min(feature_array) | |
if 'max' in measures: | |
stats['max'] = np.max(feature_array) | |
if 'range' in measures: | |
stats['range'] = np.ptp(feature_array) | |
if '25th_percentile' in measures: | |
stats['25th_percentile'] = np.percentile(feature_array, 25) | |
if '50th_percentile' in measures: | |
stats['50th_percentile'] = np.percentile(feature_array, 50) | |
if '75th_percentile' in measures: | |
stats['75th_percentile'] = np.percentile(feature_array, 75) | |
if 'skew' in measures and len(np.unique(feature_array)) > 1: | |
stats['skew'] = skew(feature_array) | |
else: | |
stats['skew'] = np.nan | |
if 'kurtosis' in measures and len(np.unique(feature_array)) > 1: | |
stats['kurtosis'] = kurtosis(feature_array) | |
else: | |
stats['kurtosis'] = np.nan | |
return stats | |