Source code for rsatoolbox.data.computations
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Dataset computations
"""
import numpy as np
from rsatoolbox.util.data_utils import get_unique_inverse
[docs]def average_dataset(dataset):
"""
computes the average of a dataset
Args:
dataset(rsatoolbox.data.Dataset): the dataset to operate on
Returns:
numpy.ndarray: average: average activation vector
"""
return np.mean(dataset.measurements, axis=0)
[docs]def average_dataset_by(dataset, by):
"""
computes the average of a dataset per value of a descriptor
Args:
dataset(rsatoolbox.data.Dataset): the dataset to operate on
by(String): which obs_descriptor to split by
Returns:
numpy.ndarray: average: average activation vector
"""
unique_values, inverse = get_unique_inverse(dataset.obs_descriptors[by])
average = np.nan * np.empty(
(len(unique_values), dataset.measurements.shape[1]))
n_obs = np.nan * np.empty(len(unique_values))
for i_v, _ in enumerate(unique_values):
measurements = dataset.measurements[inverse == i_v, :]
average[i_v] = np.mean(measurements, axis=0)
n_obs[i_v] = measurements.shape[0]
return average, unique_values, n_obs