code: def _check_isc_input(iscs, pairwise=False):
  
      
  
      # Standardize structure of input data
      if type(iscs) == list:
          iscs = np.array(iscs)[:, np.newaxis]
  
      elif isinstance(iscs, np.ndarray):
          if iscs.ndim == 1:
              iscs = iscs[:, np.newaxis]
  
      # Check if incoming pairwise matrix is vectorized triangle
      if pairwise:
          try:
              test_square = squareform(iscs[:, 0])
              n_subjects = test_square.shape[0]
          except ValueError:
              raise ValueError("For pairwise input, ISCs must be the "
                               "vectorized triangle of a square matrix.")
      elif not pairwise:
          n_subjects = iscs.shape[0]
  
      # Infer subjects, voxels and print for user to check
      n_voxels = iscs.shape[1]
      logger.info("Assuming {0} subjects with and {1} "
                  "voxel(s) or ROI(s) in bootstrap ISC test.".format(n_subjects,
                                                                     n_voxels))
  
      return iscs, n_subjects, n_voxels
docs: Checks ISC inputs for statistical tests
  
      Input ISCs should be n_subjects (leave-one-out approach) or
      n_pairs (pairwise approach) by n_voxels or n_ROIs array or a 1D
      array (or list) of ISC values for a single voxel or ROI. This
      function is only intended to be used internally by other
      functions in this module (e.g., bootstrap_isc, permutation_isc).
  
      Parameters
      ----------
      iscs : ndarray or list
          ISC values
  
      Returns
      -------
      iscs : ndarray
          Array of ISC values
  
      n_subjects : int
          Number of subjects
  
      n_voxels : int
          Number of voxels (or ROIs)