### Navigation

- index
- modules |
- next |
- previous |
- NumPy v1.3 Manual (DRAFT) »
- NumPy Reference »
- Routines »
- Indexing routines »

# numpy.diagonal

`numpy.``diagonal`(a, offset=0, axis1=0, axis2=1)

  Return specified diagonals.

  If a is 2-D, returns the diagonal of a with the given offset, i.e., the collection of elements of the form a[i,i+offset]. If a has more than two dimensions, then the axes specified by axis1 and axis2 are used to determine the 2-D subarray whose diagonal is returned. The shape of the resulting array can be determined by removing axis1 and axis2 and appending an index to the right equal to the size of the resulting diagonals.

  Parameters: | a : array_like Array from which the diagonals are taken. offset : int, optional Offset of the diagonal from the main diagonal. Can be both positive and negative. Defaults to main diagonal (0). axis1 : int, optional Axis to be used as the first axis of the 2-D subarrays from which the diagonals should be taken. Defaults to first axis (0). axis2 : int, optional Axis to be used as the second axis of the 2-D subarrays from which the diagonals should be taken. Defaults to second axis (1).
  Returns: | array_of_diagonals : ndarray If a is 2-D, a 1-D array containing the diagonal is returned. If a has larger dimensions, then an array of diagonals is returned.
  Raises: | ValueError : If the dimension of a is less than 2.

  See also

  `diag`
    Matlab workalike for 1-D and 2-D arrays.
  `diagflat`
    Create diagonal arrays.
  `trace`
    Sum along diagonals.

  Examples

      >>> a = np.arange(4).reshape(2,2)
      >>> a
      array([[0, 1],
             [2, 3]])
      >>> a.diagonal()
      array([0, 3])
      >>> a.diagonal(1)
      array([1])

      >>> a = np.arange(8).reshape(2,2,2)
      >>> a
      array([[[0, 1],
              [2, 3]],
             [[4, 5],
              [6, 7]]])
      >>> a.diagonal(0,-2,-1)
      array([[0, 3],
             [4, 7]])

### Navigation

- index
- modules |
- next |
- previous |
- NumPy v1.3 Manual (DRAFT) »
- NumPy Reference »
- Routines »
- Indexing routines »