긍정적인 사고와 행동으로 선한 영향력을 줄 수 있도록

Python

Python numpy 패키지

리거니 2021. 12. 30. 13:19
numpy는 과학 계산을 위한 라이브러리로서 다차원 배열을 처리하는데 필요한 여러 유용한 기능을 제공하고 있다 ( 머신러닝 데이터 분석 등 )




이번장에서 알아볼 내용

1 )  numpy

  • numpy 배열
  • numpy 슬라이싱
  • numpy 정수 인덱싱
  • numpy 부울린 인덱싱
  • numpy 연산

# 다차원 배열을 처리하는데 필요한 기능을 제공 (머신러닝, 데이터 분석 등)

# 터미널에 pip install matplotlib, numpy 등을 입력하여 설치를 해야한다. 
# 경로 C:\Users\RiGun\Python>

    # 배열의 n차원 크기를 rank
    # 크기를 튜플로 표시 shape
    # EX) 행이 2 열이 3 2차원 배열 = rank는 2 , shape는 (2,3)
import numpy as np

list1 = [1,2,3,4]
a = np.array(list1)
print(a.shape) # (4, )  = 하나의 요소만 있으면 뒤에 콤마

b = np.array([[1,2,3],[4,5,6]]) # 하나의 리스트만 들어가므로 리스트의 리스트를 추가
print(b.shape)  # (2, 3)
print(b[0,0])   # 1


    # zeros() - 해당 배열에 모두 0을 집어넣는다.
    # ones()  - 모두 1을 집어넣는다.
    # full()  - 사용자가 지정한 값을 넣음
    # eyes()  - 대각선으로 1 나머지 0인 2차원 배열 생성
 
a = np.zeros((2,2))
print(a)
# 출력:
# [[ 0.  0.]
#  [ 0.  0.]]
 
a = np.ones((2,3))
print(a)
# 출력:
# [[ 1.  1.  1.]
#  [ 1.  1.  1.]]
 
a = np.full((2,3), 5)
print(a)
# 출력:
# [[5 5 5]
#  [5 5 5]]
 
a = np.eye(3)
print(a)
# 출력:
# [[ 1.  0.  0.]
#  [ 0.  1.  0.]
#  [ 0.  0.  1.]]
 
a = np.array(range(20)).reshape((4,5))
print(a)
# 출력:
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]

    # numpy 슬라이싱
import numpy as np
 
lst = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
arr = np.array(lst)
 
# 슬라이스
a = arr[0:2, 0:2]
print(a)
# 출력:
# [[1 2]
#  [4 5]]
 
a = arr[1:, 1:]
print(a)
# 출력:
# [[5 6]
#  [8 9]]

    # 정수 인덱싱

lst = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12]
]
a = np.array(lst)
 
# 정수 인덱싱
s = a[[0, 2], [1, 3]]
 
print(s)
# 출력
# [2 12]

    # boolean 인덱싱
lst = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
a = np.array(lst)
 
bool_indexing_array = np.array([
    [False,  True, False],
    [True, False,  True],
    [False,  True, False]
])
 
n = a[bool_indexing_array];
print(n)   

lst = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
a = np.array(lst)
 
# 배열 a 에 대해 짝수면 True, 홀수면 False 
bool_indexing = (a % 2 == 0)
 
print(bool_indexing)
# 출력: 부울린 인덱싱 배열
# [[False  True False]
#  [ True False  True]
#  [False  True False]]
 
# 부울린 인덱스를 사용하여 True인 요소만 뽑아냄
print(a[bool_indexing])
# 출력:
# [2 4 6 8]
 
# 더 간단한 표현
n = a[ a % 2 == 0 ]
print(n)

    # numpy 연산
    
a = np.array([1,2,3])
b = np.array([4,5,6])
 
# 각 요소 더하기
c = a + b
# c = np.add(a, b)
print(c)  # [5 7 9]
 
# 각 요소 빼기
c = a - b
# c = np.subtract(a, b)
print(c)  # [-3 -3 -3]
 
# 각 요소 곱하기
# c = a * b
c = np.multiply(a, b)
print(c)  # [4 10 18]
 
# 각 요소 나누기
# c = a / b
c = np.divide(a, b)
print(c)  # [0.25 0.4 0.5]

    #
lst1 = [
    [1,2],
    [3,4]
]
 
lst2 = [
    [5,6],
    [7,8]
]
a = np.array(lst1)
b = np.array(lst2)
 
c = np.dot(a, b)
print(c)
# 출력:
# [[19 22]
#  [43 50]]

    #
a = np.array([[1,2],[3,4]])
 
s = np.sum(a)
print(s)   # 10
 
# axis=0 이면, 컬럼끼리 더함
# axis=1 이면, 행끼리 더함
s = np.sum(a, axis=0)
print(s)   # [4 6]
 
s = np.sum(a, axis=1)
print(s)   # [3 7]
 
s = np.prod(a)
print(s)   # 24

'Python' 카테고리의 다른 글

Python 난수  (0) 2021.12.30
Python Matplotlib  (0) 2021.12.30
Python 윈도우 버전과 VS CODE상 버전 맞추기  (0) 2021.12.30
VS CODE로 Python PIP 설치 및 셋팅  (0) 2021.12.30
Python 환경 변수 설정  (0) 2021.12.30