numpy 단위 매트릭스 와 대각 행렬 을 만 드 는 인 스 턴 스

linear regression 을 공부 할 때 자주 처리 하 는 데 이 터 는 일반적으로 행렬 이나 n 차원 벡터 의 데이터 형식 이 많 기 때문에 행렬 에 대해 어느 정도 인식 기반 을 가 져 야 한다.
numpy 에서 단위 행렬 을 만 들 고 idenity()함 수 를 빌 립 니 다.더 정확히 말 하면 이 함 수 는 n*n 의 단위 배열 을 만 들 고 값 을 되 돌려 주 는 dtype=array 데이터 형식 입 니 다.그 중에서 받 아들 인 매개 변 수 는 두 가지 가 있 는데 첫 번 째 는 n 값 크기 이 고 두 번 째 는 데이터 형식 이 며 보통 부동 소수점 형 이다.단위 배열 의 개념 은 단위 행렬 과 같 고 주요 대각선 요 소 는 1 이 며 다른 요 소 는 모두 0 이 며 단위 1 과 같다.단위 행렬 을 얻 으 려 면 mat()함수 로 배열 을 행렬 로 바 꾸 면 된다.

>>> import numpy as np
>>> help(np.identity)
     
Help on function identity in module numpy:

identity(n, dtype=None)
  Return the identity array.
  
  The identity array is a square array with ones on
  the main diagonal.
  
  Parameters
  ----------
  n : int
    Number of rows (and columns) in `n` x `n` output.
  dtype : data-type, optional
    Data-type of the output. Defaults to ``float``.
  
  Returns
  -------
  out : ndarray
    `n` x `n` array with its main diagonal set to one,
    and all other elements 0.
  
  Examples
  --------
  >>> np.identity(3)
  array([[ 1., 0., 0.],
      [ 0., 1., 0.],
      [ 0., 0., 1.]])
>>> np.identity(5)
     
array([[1., 0., 0., 0., 0.],
    [0., 1., 0., 0., 0.],
    [0., 0., 1., 0., 0.],
    [0., 0., 0., 1., 0.],
    [0., 0., 0., 0., 1.]])
>>> A = np.mat(np.identity(5))
     
>>> A
     
matrix([[1., 0., 0., 0., 0.],
    [0., 1., 0., 0., 0.],
    [0., 0., 1., 0., 0.],
    [0., 0., 0., 1., 0.],
    [0., 0., 0., 0., 1.]])
행렬 의 연산 에 서 는 대각 진 을 자주 사용 합 니 다.numpy 의 대각 진 은 eye()함수 로 만 듭 니 다.eye()함수 가 다섯 개의 인 자 를 받 아들 여 한 단위 의 배열 을 되 돌려 줍 니 다.첫 번 째 와 두 번 째 매개 변수 N,M 은 각각 배열 을 만 드 는 줄 수 와 열 수 를 표시 합 니 다.물론 하나의 값 만 설정 할 때 N=M 을 기본 으로 합 니 다.세 번 째 매개 변수 k 는 대각선 지수 입 니 다.diagonal 의 offset 매개 변수 와 같 습 니 다.기본 값 은 0 입 니 다.바로 주 대각선 의 방향 입 니 다.상 삼각형 방향 은 정 이 고 하 삼각형 방향 은 마이너스 이 며-n 에서+m 의 범 위 를 취 할 수 있 습 니 다.네 번 째 매개 변 수 는 dtype 입 니 다.요소 의 데이터 형식 을 지정 하 는 데 사 용 됩 니 다.다섯 번 째 매개 변 수 는 order 입 니 다.정렬 에 사 용 됩 니 다.'C'와'F'두 개의 매개 변수 가 있 습 니 다.기본 값 은'C'이 고 줄 로 정렬 합 니 다.'F'는 열 로 정렬 합 니 다.반환 값 은 단위 배열 입 니 다.

>>> help(np.eye)
    
Help on function eye in module numpy:

eye(N, M=None, k=0, dtype=<class 'float'>, order='C')
  Return a 2-D array with ones on the diagonal and zeros elsewhere.
  
  Parameters
  ----------
  N : int
   Number of rows in the output.
  M : int, optional
   Number of columns in the output. If None, defaults to `N`.
  k : int, optional
   Index of the diagonal: 0 (the default) refers to the main diagonal,
   a positive value refers to an upper diagonal, and a negative value
   to a lower diagonal.
  dtype : data-type, optional
   Data-type of the returned array.
  order : {'C', 'F'}, optional
    Whether the output should be stored in row-major (C-style) or
    column-major (Fortran-style) order in memory.
  
    .. versionadded:: 1.14.0
  
  Returns
  -------
  I : ndarray of shape (N,M)
   An array where all elements are equal to zero, except for the `k`-th
   diagonal, whose values are equal to one.
  
  See Also
  --------
  identity : (almost) equivalent function
  diag : diagonal 2-D array from a 1-D array specified by the user.
  
  Examples
  --------
  >>> np.eye(2, dtype=int)
  array([[1, 0],
      [0, 1]])
  >>> np.eye(3, k=1)
  array([[ 0., 1., 0.],
      [ 0., 0., 1.],
      [ 0., 0., 0.]])
numpy 의 diagonal()방법 은 n*n 의 배열 과 방진 에 대각선 에 있 는 요 소 를 취하 고 diagonal()은 세 개의 인 자 를 받 아들 일 수 있 습 니 다.첫 번 째 offset 매개 변 수 는 주 대각선 의 방향 이 고 기본 값 은 0 은 주 대각선 이 며 상 삼각형 방향 은 정 이 고 하 삼각형 방향 은 마이너스 이 며-n 에서+n 의 범 위 를 취 할 수 있 습 니 다.두 번 째 매개 변수 와 세 번 째 매개 변 수 는 배열 이 2 차원 이상 일 때 2 차원 배열 을 지정 할 때 사용 하 는 것 입 니 다.기본 값 은 axis 1=0,axis 2=1 입 니 다.

>>> help(A.diagonal)
     
Help on built-in function diagonal:

diagonal(...) method of numpy.matrix instance
  a.diagonal(offset=0, axis1=0, axis2=1)
  
  Return specified diagonals. In NumPy 1.9 the returned array is a
  read-only view instead of a copy as in previous NumPy versions. In
  a future version the read-only restriction will be removed.
  
  Refer to :func:`numpy.diagonal` for full documentation.
  
  See Also
  --------
  numpy.diagonal : equivalent function
>>> help(np.diagonal)
     
Help on function diagonal in module 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 sub-array 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.
  
  In versions of NumPy prior to 1.7, this function always returned a new,
  independent array containing a copy of the values in the diagonal.
  
  In NumPy 1.7 and 1.8, it continues to return a copy of the diagonal,
  but depending on this fact is deprecated. Writing to the resulting
  array continues to work as it used to, but a FutureWarning is issued.
  
  Starting in NumPy 1.9 it returns a read-only view on the original array.
  Attempting to write to the resulting array will produce an error.
  
  In some future release, it will return a read/write view and writing to
  the returned array will alter your original array. The returned array
  will have the same type as the input array.
  
  If you don't write to the array returned by this function, then you can
  just ignore all of the above.
  
  If you depend on the current behavior, then we suggest copying the
  returned array explicitly, i.e., use ``np.diagonal(a).copy()`` instead
  of just ``np.diagonal(a)``. This will work with both past and future
  versions of NumPy.
  
  Parameters
  ----------
  a : array_like
    Array from which the diagonals are taken.
  offset : int, optional
    Offset of the diagonal from the main diagonal. Can be positive or
    negative. Defaults to main diagonal (0).
  axis1 : int, optional
    Axis to be used as the first axis of the 2-D sub-arrays 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 sub-arrays from
    which the diagonals should be taken. Defaults to second axis (1).
  
  Returns
  -------
  array_of_diagonals : ndarray
    If `a` is 2-D, then a 1-D array containing the diagonal and of the
    same type as `a` is returned unless `a` is a `matrix`, in which case
    a 1-D array rather than a (2-D) `matrix` is returned in order to
    maintain backward compatibility.
    
    If ``a.ndim > 2``, then the dimensions specified by `axis1` and `axis2`
    are removed, and a new axis inserted at the end corresponding to the
    diagonal.
  
  Raises
  ------
  ValueError
    If the dimension of `a` is less than 2.
  
  See Also
  --------
  diag : MATLAB work-a-like 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 3-D example:
  
  >>> a = np.arange(8).reshape(2,2,2); a
  array([[[0, 1],
      [2, 3]],
      [[4, 5],
      [6, 7]]])
  >>> a.diagonal(0, # Main diagonals of two arrays created by skipping
  ...      0, # across the outer(left)-most axis last and
  ...      1) # the "middle" (row) axis first.
  array([[0, 6],
      [1, 7]])
  
  The sub-arrays whose main diagonals we just obtained; note that each
  corresponds to fixing the right-most (column) axis, and that the
  diagonals are "packed" in rows.
  
  >>> a[:,:,0] # main diagonal is [0 6]
  array([[0, 2],
      [4, 6]])
  >>> a[:,:,1] # main diagonal is [1 7]
  array([[1, 3],
      [5, 7]])
>>> A = np.random.randint(low=5, high=30, size=(5, 5))
     
>>> A
     
array([[25, 15, 26, 6, 22],
    [27, 14, 22, 16, 21],
    [22, 17, 10, 14, 25],
    [11, 9, 27, 20, 6],
    [24, 19, 19, 26, 14]])
>>> A.diagonal()
     
array([25, 14, 10, 20, 14])
>>> A.diagonal(offset=1)
     
array([15, 22, 14, 6])
>>> A.diagonal(offset=-2)
     
array([22, 9, 19])
이상 의 numpy 가 단위 행렬 과 대각 행렬 을 만 드 는 인 스 턴 스 는 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기