박유성의 라라벨 블로그

Numpy - ndarray#1 본문

머신러닝

Numpy - ndarray#1

Matt.park 2021. 1. 3. 18:48

http://github.com/meteorpark/learn-machine-learning/blob/master/1-3/1.3_%EB%84%98%ED%8C%8C%EC%9D%B4.ipynb

 

meteorpark/learn-machine-learning

머신러닝 스터디. Contribute to meteorpark/learn-machine-learning development by creating an account on GitHub.

github.com

  •  넘파이란?

    • Numerical Pyhton을 의미하는 넘파이(NumPy)는 파이썬에서 선형대수 기반의 프로그램을 쉽게 만들 수 있도록 지원하는 대표적인 패키지

  • ndarray

    • 넘파이의 기본 데이터 타입은 ndarray이며, ndarray를 이용해 넘파이에서 다차원 배열을 쉽게 생성하고 다양한 연산을 수행할 수 있다.

    • ndarray 데이터 타입

      • 숫자, 문자열, 불 값등 모두 가능 

        • 숫자인 경우

          • int형(8bit, 16bit, 32bit)

          • unsigned int형(8bit, 16bit, 32bit)

          • float형  (16bit, 32bit, 64bit, 128bit)

          • complex (더 큰숫자값이나 정밀도에 사용)

      • ndarray내의 데이터 타입은 연산의 특성상 같은 데이터 타입만 가능하다. 한 개의 ndarray객체에 int와 float가 함께 있을 수 없다. (속성 확인은  dtype으로 확인 가능)

  • ndarray를 편리하게 생성하기

    • 특정 크기와 차원을 가진  ndarray를 연속값이나 0또는 1로 초기화해 쉽게 생성해야 할 필요가 있는 경우가 발생할 수 있는데 이 경우 arange(), zeros(), ones()를 이용해 쉽게 ndarray를 생성할 수 있다.

      (주로 테스트용으로 데이터를 만들거나 대규모 데이터를 일괄적으로 초기화해야 할 경우 사용)

    • arange

      • 0부터 함수 인자값 N-1값까지 순차적으로 ndarray의 데이터 값으로 변환

    • zeros

      • 튜플형태의 shape 값을 입력(ex: [3,2])하면 모든 값을 0으로 채운 ndarray를 반환

      • np.zeors([3,2], dtype='int32') => [[0 0] [0 0] [0 0]]

    • ones

      • zeros와 유사하지만 모든 값을 1로 채운 ndarray를 반환

      • np.ones([3,2], dtype='int32') => [[1 1] [1 1] [1 1]]

  • reshape()

    • reshape() 메서드는 ndarray를 특정 차원 및 크기로 변환한다.

    • -1 인자값

      • 특정 차원으로 고정된 가변적인 ndarray형태로 변환

arr1 = np.arange(10)
print('arr1:\n', arr1)

arr2 = arr1.reshape(2, 5)
print('arr2\n', arr2)

# arr1:
# [0 1 2 3 4 5 6 7 8 9]
# arr2
# [[0 1 2 3 4]
# [5 6 7 8 9]]
# 2차원 ndarray를 1차원으로 변환
array1d = array2d_1.reshape(-1,)
print('array1d shape:', array1d.shape)
print('array1d:\n', array1d)

#array2d_1 shape: (5, 1)
#array2d_1:
# [[0]
# [1]
# [2]
# [3]
# [4]]
# array1d shape: (5,)
# array1d:
# [0 1 2 3 4]

 

참고자료 : 파이썬 머신러닝 완벽 가이드와 인프런 강의를 참고 했습니다.

Comments