class_docstr: Class for basic analyze header
  
  Implements zoom-only setting of affine transform, and no image
  scaling
class_docstr_tok: ["Class","for","basic","analyze","header","Implements","zoom-only","setting","of","affine","transform",",","and","no","image","scaling"]
docstr: Set zooms into header fields
  
  See docstring for ``get_zooms`` for examples
docstr_tok: ["Set","zooms","into","header","fields","See","docstring","for","``","get_zooms","``","for","examples"]
code: def set_zooms(self, zooms):
      """Set zooms into header fields
  
      See docstring for ``get_zooms`` for examples
      """
      hdr = self._structarr
      dims = hdr["dim"]
      ndim = dims[0]
      zooms = np.asarray(zooms)
      if len(zooms) != ndim:
          raise HeaderDataError(
              "Expecting %d zoom values for ndim %d" % (ndim, ndim)
          )
      if np.any(zooms < 0):
          raise HeaderDataError("zooms must be positive")
      pixdims = hdr["pixdim"]
      pixdims[1 : ndim + 1] = zooms[:]
  
imports: from __future__ import annotations
  import numpy
  from .arrayproxy import ArrayProxy
  from .arraywriters import ArrayWriter, WriterError, get_slope_inter, make_array_writer
  from .batteryrunners import Report
  from .fileholders import copy_file_map
  from .spatialimages import HeaderDataError, HeaderTypeError, SpatialHeader, SpatialImage
  from .volumeutils import apply_read_scaling, array_from_file, make_dt_codes, native_code, seek_tell, shape_zoom_affine, swapped_code
  from .wrapstruct import LabeledWrapStruct
label_desc: Use image node_id 15 for calling the AnalyzeHeader obj's underlying member method code with example usage: obj.set_zooms(zooms) without return types