안경잡이개발자

728x90
반응형

  파이썬(Python)에서는 Numpy라는 데이터 분석 전용 라이브러리가 많이 사용됩니다. Numpy는 다차원 배열을 효과적으로 처리할 수 있도록 해주는 다양한 기능을 제공하고 있습니다. 일반적으로 현실 세계에서 다양한 데이터배열 형태의 데이터로 표현할 수 있습니다. 720 X 480 크기의 이미지가 있다고 하면, 이를 720 X 480 배열로 나타낼 수도 있습니다.


  흔히 대부분의 문제는 행렬을 이용해 해결할 수 있다고 말합니다. Numpy는 그러한 행렬을 매우 효과적으로 처리할 수 있도록 도와준다는 특징이 있습니다. 더불어 Numpy는 List와 다르게, 하나의 자료형이 데이터로 들어간다는 특징이 있습니다.


  물론 다차원 배열은 파이썬의 리스트(List) 자료형을 이용해도 어렵지 않게 만들 수 있습니다. 하지만 Numpy를 사용하면 보다 효율적으로 다차원 배열을 사용할 수 있으며, 메모리의 효율성도 리스트보다 앞서게 됩니다. Numpy는 일반적으로 리스트를 입력으로 받아서, Numpy 객체로 처리하여 사용할 수 있도록 해줍니다. 기본적인 Numpy 객체의 사용 방법은 다음과 같습니다.


※ 파이참에서 Numpy 사용하기 ※


  파이참에서 Numpy를 사용하려면 이를 프로젝트 설정에서 등록해주시면 됩니다.



  이후에 인터프리터 설정에서 추가(+) 버튼을 눌러서 라이브러리를 추가해주시면 됩니다.



  Numpy를 검색해서 설치를 진행합니다.



  결과적으로 Numpy를 사용할 수 있게 되었습니다.



※ Numpy 사용해보기 ※


  Numpy 라이브러리는 리스트를 입력으로 받아서 Numpy 객체를 만들 수 있도록 해줍니다.


import numpy as np array = np.array([1, 2, 3]) print(array.size) # 배열의 크기 print(array.dtype) # 배열 원소의 타입 print(array[2]) # 인덱스 2의 원소


※ Numpy로 배열 만들기 ※


  Numpy에서 배열을 순식간에 생성하기 위해서는 arange() 함수를 사용할 수 있습니다. arange() 함수를 이용하면 0부터 특정 인덱스까지의 배열을 생성할 수 있습니다.


import numpy as np

array1 = np.arange(4)
print(array1[3])


※ Numpy 배열 합치기 ※


  concatenate() 함수를 이용하면 여러 배열을 하나로 합칠 수 있습니다.


import numpy as np

array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])
array3 = np.concatenate([array1, array2])

print(array3.shape)


※ Numpy 다양한 형태의 배열 만들기 ※


import numpy as np

array1 = np.zeros((4, 4), dtype=float)
array2 = np.ones((3, 3), dtype=str)
array3 = np.random.randint(0, 10, (3, 3))
# 평균이 0이고 표준편차가 1인 표준 정규를 띄는 값
array4 = np.random.normal(0, 1, (3, 3))
print(array1)
print(array2)
print(array3)
print(array4)


※ Numpy 배열의 형태 바꾸기 ※


  reshape() 함수를 이용하면, 기존 배열의 형태를 바꿀 수 있습니다. 예를 들어서 1차원 배열을 2차원 배열로 바꿀 수 있습니다.


import numpy as np

array1 = np.array([1, 2, 3, 4])
array2 = array1.reshape((2, 2))

print(array2.shape)


※ Numpy 배열을 세로 축으로 합치기 ※


  Numpy 배열은 세로 축으로 합칠 수도 있습니다. 기본적으로 축 값(Axis)이 0이라면 세로 축이고, 1이라면 가로 축입니다.


import numpy as np

array1 = np.arange(4).reshape(1, 4)
array2 = np.arange(8).reshape(2, 4)

array3 = np.concatenate([array1, array2], axis=0)
print(array3.shape)


※ Numpy 배열을 나누기 ※


  Numpy 배열을 나눌 때에는 split() 함수를 사용하며 이는 concatenate() 함수와 흡사하게 동작합니다. 2 X 4 배열을 왼쪽과 오른쪽으로 이등분하는 소스코드는 다음과 같습니다.


import numpy as np

array = np.arange(8).reshape(2, 4)
left, right = np.split(array, [2], axis=1)
print(left.shape)
print(right.shape)
print(right[1][1])


728x90
반응형