0. 셋팅

1) 주피터 설치

pip install jupyter
  • 코드, 수식, 미디어, 텍스트 등 문서를 만들고 공유할 수 있는 오픈소스
jupyter notebook
  • 아래와 같은 웹이 실행된 것을 확인할 수 있음

2) nmpy 설치

pip install numpy

1. Numpy

  • numpy는 Numeric Python
  • 파이썬에서 살술 계산을 쉽게 하기위한 라이브러리

1) Numpy 라이브러리 가져오기

import numpy as np

2) Numpy ndarray

  • numpy에서 사용하는 N차원 배열 객체
a = np.array([1,2,3])
print(a)
print([1,2,3])
print(type(a))

3) 새로운 배열 추가

a = np.array([1,2,3])
b = [1, 2, 3]

print(a,b)

a = np.append(a,4)
b.append(4)

print(a,b)

import numpy as np

a = np.array([1,2,3])
b = [1, 2, 3]

print(a,b)

a = a + np.array([5])
b = b + [5, 6]

print(a,b)

import numpy as np

a = np.array([1,2,3])
b = [1, 2, 3]

print(a,b)

a = a * np.array([2])
b = b * 2

print(a,b)

2. 배열

  • numpy에서 배열은 모두 같은 유형의 값을 가짐
  • dtype으로 배열에 저장된 값을 타입을 확인 가능
  • ndim으로 차원 확인 가능
  • shape를 이용해 배열의 크기를 확인 가능
a = np.array([1,2,3])
print(a)
print(type(a))
print(a.dtype)
print(a.ndim)
print(a.shape)

1) 배열 생성

np.zeros((n, m))
np.ones((n, m))
np.full((n, m), value)
np.empty((n, m))

등으로 배열 생성이 가능

1-1) np.zeros()

a = np.zeros((3,4))
print(a)

3*4 배열 0으로 저장

1-2) np.ones()

a = np.ones((3,4))
print(a)

3*4 배열 1으로 저장

1-3) np.full()

a = np.full((3,4), 5)
print(a)

3*4 배열 5으로 저장

1-4) np.empty((3,4))

a = np.empty((3,4))
print(a)

3*4 배열 쓰레기 값으로 저장

1-5) 랜덤 배열

a = np.random.rand(2,2)
print(a)

2*2 배열 랜덤 값으로 저장

a = np.random.rand(2,3,4)
print(a)
3차원 배열도 가능

1-6) 배열 정보 보기

a = np.zeros((3,4))
print(a)
print(type(a))
print(a.dtype)
print(a.ndim)
print(a.shape)

1-7) 차원 배열 정보 확인

a = np.array(
[
    [1,2,3],
    [4,5,6],
    [7,8,9],
])

print(a)
print(a[1][0]) #4출력
print(a.ndim)
print(a.shape)

2) 실습

2-1) 출력

a = np.array(
    [
        [1, 2, 3, 4, 5],
        [6, 7, 8, 9, 10],
        [11,12,13,14,15],
        [16,17,18,19,20],
    ]
)

print(a[1:4, 2:4])

2-1) 반복문 출력

a = np.array(
    [
        [1, 2, 3, 4, 5],
        [6, 7, 8, 9, 10],
        [11,12,13,14,15],
        [16,17,18,19,20],
    ]
)

for i in range(0,4):
    for j in range(0,4):
        print(a[i:i+2, j:j+2])


3. 행렬 데이터 연산

1) 행렬 데이터 연산

x = np.array(
    [
        [1, 2],
        [3, 4],
    ]
)

y = np.array(
    [
        [5, 6],
        [7, 8],
    ]
)

print(x+y)
print(np.add(x,y))

print(x-y)
print(np.subtract(x,y))

print(x*y)
print(np.multiply(x,y))

print(x/y)
print(np.divide(x,y))

print(x@y)
print(np.matmul(x,y))
  • 행렬의 내적(Dot Product, 행렬곱, Matrix Multiplication) aXb 행렬과 cXd행렬의 곱을 할 때, b와 c가 같아야한다.
  • 곱한 결과는 aXd 형태의 행렬이 나온다.

2) 행렬 데이터 전치

  • 전치 연산은 행렬에서 가장 기본이 되는 연산으로 행렬의 행과 열을 바꾸는 연산을 말함
  • 행렬에 T라는 위첨자 또는 ` 기호를 붙임
x = np.array(
    [
        [1, 2],
        [3, 4],
    ]
)


print(x)
print(x.T)
print(np.transpose(x))

4. reshape

  • numpy가 연산을 수행할 때 다른 모양의 배열로 작업 할 수 있게 해주는 방법
x = np.array(
    [
        [1, 2],
        [3, 4],
    ]
)


print(x.reshape(1,4))
print(x.reshape(4,1))

  • 2차원으로 변경 후, 정보 확인
a = np.array([1,2,3,4,5,6,7,8,9,10,11,12])

print(a.ndim)
print(a.shape)


a = a.reshape(2,6)
print(a)
print(a.ndim)
print(a.shape)

profile
사진은 남아 추억이 메모는 남아 스펙이 된다

0개의 댓글