code: def _read_csv_rows_cols(
      fname, start, stop, cols, bounds, sep=" ", replace=None
  ):
      with open(fname, "rb") as fid:
          fid.seek(bounds[start])
          args = list()
          if bounds[1] is not None:
              args.append(bounds[stop] - bounds[start])
          data = fid.read(*args).decode("latin-1")
          if replace is not None:
              data = replace(data)
          x = np.fromstring(data, float, sep=sep)
      x.shape = (stop - start, -1)
      x = x[:, cols]
      return x
  
imports: import datetime
  import glob
  import json
  import os.path
  import re
  from configparser import ConfigParser, RawConfigParser
  import numpy
  from scipy.io import loadmat
  from ..._fiff.constants import FIFF
  from ..._fiff.meas_info import _format_dig_points, create_info
  from ..._fiff.utils import _mult_cal_one
  from ..._freesurfer import get_mni_fiducials
  from ...annotations import Annotations
  from ...transforms import _get_trans, apply_trans
  from ...utils import _check_fname, _check_option, _mask_to_onsets_offsets, _validate_type, fill_doc, logger, verbose, warn
  from ..base import BaseRaw
  from ._localized_abbr import _localized_abbr
label_desc: Use image node_id 3 for calling a global function with example usage: _read_csv_rows_cols(fname, start, stop, cols, bounds, sep, replace) and returns: x