code: def _aligned_zeros(shape, dtype=float, order="C", align=None):
      """Allocate a new ndarray with aligned memory.
      Primary use case for this currently is working around a f2py issue
      in Numpy 1.9.1, where dtype.alignment is such that np.zeros() does
      not necessarily create arrays aligned up to it.
      """
      dtype = np.dtype(dtype)
      if align is None:
          align = dtype.alignment
      if not hasattr(shape, "__len__"):
          shape = (shape,)
      size = functools.reduce(operator.mul, shape) * dtype.itemsize
      buf = np.empty(size + align + 1, np.uint8)
      offset = buf.__array_interface__["data"][0] % align
      if offset != 0:
          offset = align - offset
      # Note: slices producing 0-size arrays do not necessarily change
      # data pointer --- so we use and allocate size+1
      buf = buf[offset : offset + size + 1][:-1]
      data = np.ndarray(shape, dtype, buf, order=order)
      data.fill(0)
      return data
  
imports: from scipy.sparse.linalg.eigen.arpack import _arpack
  import numpy
  from scipy.sparse.linalg.interface import aslinearoperator, LinearOperator
  from scipy.sparse import identity, isspmatrix, isspmatrix_csr
  from scipy.linalg import lu_factor, lu_solve
  from scipy.sparse.sputils import isdense
  from scipy.sparse.linalg import gmres, splu
  import scipy
  import functools
  import operator
  from distutils.version import LooseVersion
label_desc: Use image node_id 1 for calling a global function with example usage: _aligned_zeros(shape, dtype, order, align) and returns: data