In [11]:
# %!/usr/bin/env python
# % ----------------------------------------------------------------------
# % Numenta Platform for Intelligent Computing (NuPIC)
# % Copyright (C) 2016, Numenta, Inc.  Unless you have an agreement
# % with Numenta, Inc., for a separate license for this software code, the
# % following terms and conditions apply:
# %
# % This program is free software: you can redistribute it and/or modify
# % it under the terms of the GNU Affero Public License version 3 as
# % published by the Free Software Foundation.
# %
# % This program is distributed in the hope that it will be useful,
# % but WITHOUT ANY WARRANTY; without even the implied warranty of
# % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# % See the GNU Affero Public License for more details.
# %
# % You should have received a copy of the GNU Affero Public License
# % along with this program.  If not, see http://www.gnu.org/licenses.
# %
# % http://numenta.org/licenses/
# % ----------------------------------------------------------------------
import numpy as np

def calculate_sparsity_over_trials(spikeMat, imgPara):
    print spikeMat.shape
    stimrep = int(imgPara['stimrep'])
    sparsity = np.zeros((stimrep,1))
    numFramesPerStim = int(round(imgPara['stim_time']/imgPara['dt']))
    # the returned sparsity is everaged for all the neurons' 
    # firings within each specific trial
    for rep in range(stimrep):
        numFramesArray = np.array(range(numFramesPerStim))
        spikesCurrentTrial = spikeMat[rep]  
        sparsity[rep] = np.mean(spikesCurrentTrial) # average by columns and by rows    
    return sparsity