Skip to main content
`Ctrl`+`K`

# numpy.matrix.copy

method

matrix.copy(order='C')

  Return a copy of the array.

  Parameters:
    order{‘C’, ‘F’, ‘A’, ‘K’}, optional

      Controls the memory layout of the copy. ‘C’ means C-order, ‘F’ means F-order, ‘A’ means ‘F’ if a is Fortran contiguous, ‘C’ otherwise. ‘K’ means match the layout of a as closely as possible. (Note that this function and `numpy.copy` are very similar but have different default values for their order= arguments, and this function always passes sub-classes through.)

  See also

  `numpy.copy`

    Similar function with different default behavior

  `numpy.copyto`

  Notes

  This function is the preferred method for creating an array copy. The function `numpy.copy` is similar, but it defaults to using order ‘K’, and will not pass sub-classes through by default.

  Examples

      >>> import numpy as np
      >>> x = np.array([[1,2,3],[4,5,6]], order='F')

      >>> y = x.copy()

      >>> x.fill(0)

      >>> x
      array([[0, 0, 0],
             [0, 0, 0]])

      >>> y
      array([[1, 2, 3],
             [4, 5, 6]])

      >>> y.flags['C_CONTIGUOUS']
      True

  For arrays containing Python objects (e.g. dtype=object), the copy is a shallow one. The new array will contain the same object which may lead to surprises if that object can be modified (is mutable):

      >>> a = np.array([1, 'm', [2, 3, 4]], dtype=object)
      >>> b = a.copy()
      >>> b[2][0] = 10
      >>> a
      array([1, 'm', list([10, 3, 4])], dtype=object)

  To ensure all elements within an `object` array are copied, use `copy.deepcopy`:

      >>> import copy
      >>> a = np.array([1, 'm', [2, 3, 4]], dtype=object)
      >>> c = copy.deepcopy(a)
      >>> c[2][0] = 10
      >>> c
      array([1, 'm', list([10, 3, 4])], dtype=object)
      >>> a
      array([1, 'm', list([2, 3, 4])], dtype=object)