code: def _compute_shared_response(data, w):
          
          s = np.zeros((w[0].shape[1], data[0].shape[1]))
          for m in range(len(w)):
              s = s + w[m].T.dot(data[m])
          s /= len(w)
          return s
docs: Compute the shared response S
  
          Parameters
          ----------
  
          data : list of 2D arrays, element i has shape=[voxels_i, samples]
              Each element in the list contains the fMRI data of one subject.
  
          w : list of 2D arrays, element i has shape=[voxels_i, features]
              The orthogonal transforms (mappings) :math:`W_i` for each subject.
  
  
          Returns
          -------
  
          s : array, shape=[features, samples]
              The shared response for the subjects data with the mappings in w.