2 minute read

📢Key Words [python 시험대비 및 복습]

1. 넘파이 ndarray: 다차원 배열 객체

01. 넘파이 ndarray

  • 넘파이(numpy)의 주요 특징 중의 하나가 n차원 배열(ndarray) 객체
  • 성분별 계산을 할 수 있다.
      import numpy as np
    
  • 배열 원소들의 자료형 dtype
  • 배열의 크기인 shape
  • 02. ndarray 만들기

  • 가장 쉬운 방법은 numpy.array 메소드를 이용
  • 중첩된 리스트도 다차원 배열로 변환할 수 있다.
  • 배열의 형도 원소들에 따라 자동으로 설정된다.
  • zeros와 ones를 이용해서 0및 1로 이루어진 배열을 만들 수 있다.
  • arange 함수는 파이썬의 range 함수에 대응되는 것이지만 반환값은 넘파이 배열이다.

03. 넘파이 자료형

  • dtype 지정 가능
      arr1 = np.array([1, 2, 3], dtype=np.float64)
      arr2 = np.array([1, 2, 3], dtype=np.int64)
    
  • astype 메소드를 이용해서 다른 형으로 전환할 수 있다. arr_float = arr.astype(np.float64)

    04. 넘파이 배열 연산

  • 반복문을 사용하지 않고서도 내부적으로 연산을 할 수 있다.
  • 두 배열간의 비교 연산도 가능하다.
  • 크기가 다른 배열간에도 연산이 가능하다. 이러한 연산을 브로드캐스팅(broadcasting)이라고 한다.

04. 인덱싱, 슬라이싱 기본

  • 파이썬 리스트와 크게 다른점중의 하나는 배열 슬라이스는 새로운 객체를 만드는 것이 아닌 원래 배열에 대한 뷰(view)이다. 즉 선택 부분의 값을 변경하면 원래 배열의 같은 위치의 값도 변경이 되는 것이다.
  • arr_slice의 부분을 변경하면 원래 배열 arr도 값이 변경된 것을 알 수 있다.
      arr_slice = arr[5:8]
      arr_slice
      #Out[62]: array([10, 10, 10])
      arr_slice[1] = 1234
      arr
      #Out[63]:array([   0,    1,    2,    3,    4,   10, 1234,   10,    8,    9])
    
  • 배열의 일부분을 복사해서 사용하려면 copy 메소드를 이용할 수 있다. arr_copy = arr[5:8].copy()
  • 2차원 배열을 생각해보자. 각 인덱스에 해당하는 원소는 스칼라가 아니고 1차원 벡터가 된다. python arr2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) arr2d[0][1] #Out[70]:2
  • 첫번째 성분은 행, 두번째 성분은 열을 의미한다고 볼 수 있다.
  • 3차원일때는??? 행과 열로 보는 것보다 일자로 늘어뜨리고 보는 것이 편하다.

    05. 슬라이싱을 이용한 인덱싱

06. 논리 인덱싱

  • 논리배열은 다른 배열의 인덱스로 사용될 수 있다.
  • 주의해야 할 것은 넘파이 논리 연산자로 파이썬 논리 연산자 and와 or를 사용할 수 없다. 반드시 &와 만 사용해야 한다.
  • 논리 인덱스를 이용해서 반환된 배열을 원래 배열의 복사본이기때문에 반환된 배열값이 바뀌어도 원본값은 변하지 않는다.

    07. 정수 배열을 이용한 인덱싱

      arr
      array([[0., 0., 0., 0.],
       [1., 1., 1., 1.],
       [2., 2., 2., 2.],
       [3., 3., 3., 3.],
       [4., 4., 4., 4.],
       [5., 5., 5., 5.],
       [6., 6., 6., 6.],
       [7., 7., 7., 7.]])
      arr[[4, 3, 0, 6]]
      array([[4., 4., 4., 4.],
       [3., 3., 3., 3.],
       [0., 0., 0., 0.],
       [6., 6., 6., 6.]])
    
  • 주의해야할 것은 정수 배열 인덱싱해서 나온 배열은 원래 배열의 복사본이다.

    06. 논리 인덱싱

    2. 범용함수

    3. 배열 지향 프로그래밍

    4. 넘파이 배열 파일 입출력

    5. 의사 난수 생성(Pseudorandom Number Generation)

1. numpy 패키지

2. numpy 배열

3. numpy 슬라이싱

4. numpy 정수 인덱싱

5. numpy 부울린 인덱싱 (boolean indexing)

### 01. numpy 부울린 인덱싱? ### 02. 일일이 지정하는 방법 ### 03. 표현식을 사용

6. numpy 연산

  • Image Classification은 입력 이미지가 어떤 카테고리에 속하는지 고르는 것을 말한다.

    소단원

    • Keyword

이미지 캡션

Summary

개인 공부 기록용 블로그 입니다.