code: def _augmented_orthonormal_cols(x, k):
      # extract the shape of the x array
      n, m = x.shape
      # create the expanded array and copy x into it
      y = np.empty((n, m + k), dtype=x.dtype)
      y[:, :m] = x
      # do some modified gram schmidt to add k random orthonormal vectors
      for i in range(k):
          # sample a random initial vector
          v = np.random.randn(n)
          if np.iscomplexobj(x):
              v = v + 1j * np.random.randn(n)
          # subtract projections onto the existing unit length vectors
          for j in range(m + i):
              u = y[:, j]
              v -= (np.dot(v, u.conj()) / np.dot(u, u.conj())) * u
          # normalize v
          v /= np.sqrt(np.dot(v, v.conj()))
          # add v into the output array
          y[:, m + i] = v
      # return the expanded array
      return y
  
imports: from __future__ import division, print_function, absolute_import
  from .None import _arpack
  import numpy
  import warnings
  from scipy.sparse.linalg.interface import aslinearoperator, LinearOperator
  from scipy.sparse import eye, issparse, isspmatrix, isspmatrix_csr
  from scipy.linalg import eig, eigh, lu_factor, lu_solve
  from scipy.sparse.sputils import isdense
  from scipy.sparse.linalg import gmres, splu
  from scipy._lib._util import _aligned_zeros
  from scipy._lib._threadsafety import ReentrancyLock
label_desc: Use image node_id 9 for calling a global function with example usage: _augmented_orthonormal_cols(x, k) and returns: y