본문 바로가기

Python

Numpy <- import numpy as np

NumPy Library

  • Numerical Python의 약자(numpy)
  • Python에서 수치계산을 위한 핵심 라이브러리
  • ndarray(N-dimensional array) 자료구조를 지원
  • numpy 라이브러리 로딩 : import numpy as np

 

ndarray(N-dimensional array)

  1. 다양한 수학 함수 및 빠른 연산 속도, 다차원의 배열 지원
  2. 브로드 캐스팅(차원을 동일시 하는 기능)
  3. NumPy의 N차원 배열 객체
  4. 생성하기 : np.array(리스트 or 튜플)
  • 주의사항 :

1.array 내부에는 동일한 자료형을 가짐

2.각 값들은 인덱스(index)가 부여되어 있다.(순서가 있다.)

 

ndarray 생성하기 1차원

1.시퀀스 자료형을 형변환 하는 방법

list1 = [1,2,3,4,5]
arr1 = np.array(list1)

print(list1) <- [1, 2, 3, 4, 5]
arr1 <- array([1, 2, 3, 4, 5])

2.직접 array화 시켜주는 방법

arr2 = np.array([2,3,4,5,6])
arr2 <- array([2, 3, 4, 5, 6])

 

ndarray생성하기 : 2차원

list2 = [[1,2,3],[4,5,6]]
arr3 = np.array(list2)

arr3 <-- array([[1, 2, 3],
       [4, 5, 6]])

list2 <-- [[1, 2, 3], [4, 5, 6]]

 

브로드 캐스팅 : 일정 조건을 부합하는 다른 형태의 배열끼리 연산을 수행하는 것

#차원 수를 동일시하는 기능

리스트의 경우 문자열을 연결하듯이, 하나의 리스트로 이어붙임
list1 = [1,2,3]
list2 = [4,5,6]

print(list1 + list2, end="\n\n") <-- [1, 2, 3, 4, 5, 6]

ndarray의 경우 차원을 인식해서 각각의 요소들의 연산을 수행
arr1 = np.array(list1)
arr2 = np.array(list2)
print(arr1 + arr2, end="\n\n") <-- [5 7 9]

2차원 + 1차원을 더했더니, 각각의 요소들을 찾아서 연산을 수행
arr3 = np.array([[1,2,3],[4,5,6]])
arr4 = np.array([7,8,9])
print(arr3+arr4) <-- [[ 8 10 12]
                      [11 13 15]]

차원수를 동일시 해서 맞춰서 계산한다.
1차원과 0차원(요소 하나)을 곱했더니, 각각의 요소들을 찾아서 연산을 수행
arr5 = np.array([1,1,1])
arr5*5 <-- array([5, 5, 5])

브로드 캐스팅이 되기위한 조건 => 즉 : 차원과 차원을 나누었을때 나머지가 없는경우에 가능

1. 맴버가 하나인 배열은 어떤 배열에나 브로드캐스팅(Broadcasting)이 가능(단, 맴버가 하나도 없는 빈 배열을 제외)

ex) 4x4 + 1

2. 하나의 배열의 차원1인 경우 브로드캐스팅(Broadcasting)이 가능

ex) 4x4 + 1x4

3. 차원의 짝이 맞을 때 브로드캐스팅(Broadcasting)가능  

ex) 3x1 + 1x3

 

array 모양(크기) 및 차원 확인하기

1.array 모양(크기) 확인하기 <- shape

  • 1차원 -> 요소개수
  • 2차원 -> 행과 열

2.array 차원 확인하기 <- ndim(ndimention)

 

3.array의 전체 요소개수 확인하기

  •  len() -> 배열의 첫 번째 차원의 "길이"를 반환
  • size() -> 각각의 요소들의 개수를 반환
arr3 = np.array([[1,2,3],[4,5,6]])
print(arr3.shape) <- (2, 3)
print(arr3.ndim) <- 2
print(arr3.size) <- 6

arr4 = np.array([7,8,9])
print(arr4.shape) <- (3,)
print(arr4.ndim) <- 1
print(arr4.size) <-3

 

예시)

array인 함수화를 통해 일일히 귀찮게 안해도됨

 

'Python' 카테고리의 다른 글

ndarray 인덱싱 & 슬라이싱  (2) 2023.10.15
ndarray dtype  (0) 2023.10.15
함수(function)  (0) 2023.10.08
딕셔너리(dictionary)의 종류들  (1) 2023.10.08
for문 그리고 예시  (0) 2023.10.08