class_docstr: Sequence of ndarrays having variable first dimension sizes.
  
  This is a container that can store multiple ndarrays where each ndarray
  might have a different first dimension size but a *common* size for the
  remaining dimensions.
  
  More generally, an instance of :class:`ArraySequence` of length $N$ is
  composed of $N$ ndarrays of shape $(d_1, d_2, ... d_D)$ where $d_1$
  can vary in length between arrays but $(d_2, ..., d_D)$ have to be the
  same for every ndarray.
class_docstr_tok: ["Sequence","of","ndarrays","having","variable","first","dimension","sizes",".","This","is","a","container","that","can","store","multiple","ndarrays","where","each","ndarray","might","have","a","different","first","dimension","size","but","a","*","common","*","size","for","the","remaining","dimensions",".","More","generally",",","an","instance","of",":","class",":","`","ArraySequence","`","of","length","$","N","$","is","composed","of","$","N","$","ndarrays","of","shape","$","(","d_1",",","d_2",",","...","d_D",")","$","where","$","d_1","$","can","vary","in","length","between","arrays","but","$","(","d_2",",","...",",","d_D",")","$","have","to","be","the","same","for","every","ndarray","."]
docstr: Creates a copy of this :class:`ArraySequence` object.
  
  Returns
  -------
  seq_copy : :class:`ArraySequence` instance
      Copy of `self`.
  
  Notes
  -----
  We do not simply deepcopy this object because we have a chance to use
  less memory. For example, if the array sequence being copied is the
  result of a slicing operation on an array sequence.
docstr_tok: ["Creates","a","copy","of","this",":","class",":","`","ArraySequence","`","object",".","Returns","--","--","--","-","seq_copy",":",":","class",":","`","ArraySequence","`","instance","Copy","of","`","self","`",".","Notes","--","--","-","We","do","not","simply","deepcopy","this","object","because","we","have","a","chance","to","use","less","memory",".","For","example",",","if","the","array","sequence","being","copied","is","the","result","of","a","slicing","operation","on","an","array","sequence","."]
code: def copy(self):
      """Creates a copy of this :class:`ArraySequence` object.
  
      Returns
      -------
      seq_copy : :class:`ArraySequence` instance
          Copy of `self`.
  
      Notes
      -----
      We do not simply deepcopy this object because we have a chance to use
      less memory. For example, if the array sequence being copied is the
      result of a slicing operation on an array sequence.
      """
      seq = self.__class__()
      total_lengths = np.sum(self._lengths)
      seq._data = np.empty(
          (total_lengths,) + self._data.shape[1:],
          dtype=self._data.dtype,
      )
  
      next_offset = 0
      offsets = []
      for offset, length in zip(self._offsets, self._lengths):
          offsets.append(next_offset)
          chunk = self._data[offset : offset + length]
          seq._data[next_offset : next_offset + length] = chunk
          next_offset += length
  
      seq._offsets = np.asarray(offsets)
      seq._lengths = self._lengths.copy()
  
      return seq
  
imports: import numbers
  from functools import reduce
  from operator import mul
  import numpy
label_desc: Use image node_id 14 for calling the ArraySequence obj's underlying member method code with example usage: obj.copy() and returns: seq