code: def _get_basis_projections(data, subVX, rmse_scales_func):
      ncomp = subVX.shape[0]
      out = np.empty((ncomp,) + data.shape[1:], float)
      for i in range(data.shape[1]):
          Y = data[:, i].reshape((data.shape[0], -1))
          U = np.dot(subVX, Y)
          if rmse_scales_func is not None:
              U *= rmse_scales_func(Y)
          U.shape = (U.shape[0],) + data.shape[2:]
          out[:, i] = U
      return out
  
file_path: nipy/nipy/algorithms/utils/pca.py
imports: import numpy
  import numpy.linalg
  from ...core.image.image import rollimg
  from ...core.reference.coordinate_map import AxisError, drop_io_dim, io_axis_indices, orth_axes
label_desc: Use image node_id 3 for calling a global function with example usage: _get_basis_projections(data, subVX, rmse_scales_func) and returns: out