wasup

Python) numpy(Numerical Python) 본문

IT/Python

Python) numpy(Numerical Python)

wasupup 2021. 5. 25. 12:37
반응형

numpy(Numerical Python)

  • 벡터 및 행렬연산에 특화된 라이브러리
  • array(ndarray) 단위로 데이터를 관리. 즉, array단위로 연산을 수행한다.
  • 2차원 array는 행렬(matrix)과 유사하다.
  • pandas와 함께 데이터분석에 많이 사용한다.
  • 수치해석용 python library이다.

참고 사이트

  1. home : https://numpy.org
  2. doc : https://docs.scipy.org/doc
  3. tutorial :

1. 1차원 Array정의 및 사용

# 1. np.array() : 데이터를 numpy배열로 리턴
data = [1, 2, 3, 4, 5]
arr = np.array(data)
print(type(arr), arr, type(data), data)

# np.array() 데이터형이 다를경우(다른 요소를 가지는 경우) 강제형변환(upcasting)이 일어난다.
arr1 = np.array([1, 2, 3, 4, 3.14])
arr1 #전부 실수로 upcasting

<class 'numpy.ndarray'> [1 2 3 4 5] <class 'list'> [1, 2, 3, 4, 5]

array([1. , 2. , 3. , 4. , 3.14])

 

 

#배열의 크기 확인
print(arr1.shape) #튜플형태로 리턴
print(np.shape(arr1))

help(arr1.shape)

(5,)

(5,)

Help on tuple object:

...

 

 


2. 2차원 array(행렬, matrix)

data = [[1, 2, 3], [4, 5, 6]]
arr = np.array(data)
print(arr.shape, arr)

# numpy의 datatype보기
arr.dtype

# 3*3
arr = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])
print(arr.shape, '\n', arr)

# 정방형이 아닌경우(리스트요소갯수가 다를 경우)
arr = np.array([[1, 2, 3],[4, 5, 6],[7, 8, ]])
print(arr.shape, '\n', arr)

3. numpy 연산

  • numpy배열은 리스트와 유사하지만 다음과 같은 점에서 다르다.
    • 모든 원소가 동일 자료형이어야 한다.
    • 원소의 갯수는 변경할 수 없다.

1) np.shape

  • numpy에서 해당 array의 크기를 확인할 수 있는 함수, 이 함수는 정수를 리턴해준다.
  • 1차원배열인 경우 (5,) 2차원 배열일 경우 (3,3)의 형태로 리턴

2) np.dtype

  • int 8, 32, 64 : 부호가 있는 정수
  • uint 8, 32, 64 : 부호가 없는 정수
  • float 16, 32, 64, 128 : 실수
  • bool
  • string
  • object
  • unicode

# 1. numpy배열 연산
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8, 9], [10, 11, 12]])

print("더하기 : \n", arr1 + arr2)
print("빼기 : \n", arr1 - arr2)
print("곱하기 : \n", arr1 * arr2)
print("나누기 : \n", arr1 / arr2)
print("전체의 2배 : \n", arr1 * 2)
print("전체의 제곱근 : \n", arr1 ** 2)

print()

# numpy 함수이용
print("더하기 : \n", np.add(arr1 , arr2))
print("빼기 : \n", np.subtract(arr1 , arr2))
print("곱하기 : \n", np.multipl(arr1 , arr2))
print("나누기 : \n", np.divide(arr1 , arr2))

2. numpy array broadcasting

  • numpy배열에서는 기본적으로 동일 크기를 가져야 연산이 가능하지만 배열의 크기에 틀릴 경우에
  • 이런 점을 보완하기 위해 numpy에서는 broadcast라는 기능을 제공해 준다.
  • 즉, broadcating는 서로 크기가 다른 numpy배열의 연산이 가능하도록 해주는 기능이다.

# 2. broadcasting
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([7, 8, 9])

print("더하기 : \n", arr1 + arr2)
print("빼기 : \n", arr1 - arr2)
print("곱하기 : \n", arr1 * arr2)
print("나누기 : \n", arr1 / arr2)
print("전체의 2배 : \n", arr1 * 2)
print("전체의 제곱근 : \n", arr1 ** 2)

 


반응형
Comments