Study/ML, AL

numpy를 사용해봅시다

🥭맹2 2021. 4. 14. 11:00

넘파이

1. 넘파이 가져오기

import numpy as np

2. 넘파이 배열 생성하기

넘파이 배열을 만들 때는 np.array()메서드를 이용

np.array() : 파이썬의 리스트를 인수로 받아 넘파이 라이브러리가 제공하는 특수한 형태의 배열(numpy.ndarray)을 반환함

x = np.array([1.0, 2.0, 3.0])
print(x)
# [1. 2. 3.]
print(type(x))
# <class 'numpy.ndarray'>

3. 넘파이의 산술 연산

배열끼리의 원소 수가 같아야함.

스칼라 값과의 산술 연산의 경우 브로드캐스트 기능이 작동함(5번 브로드캐스트 참고)

x = np.array([1.0, 2.0, 3.0])
y = np.array([2.0, 4.0, 6.0])
print(x+y)
# array([3., 6., 9.])
print(x-y)
# array([-1., -2., -3.])
print(x*y)
# array([2., 8., 18.])
print(x/y)
# array([0.5, 0.5, 0.5])

4. 넘파이의 N차원 배열

shape: 행렬의 형상

dtype: 행렬에 담긴 원소의 자료형

A = np.array([[1, 2], [3, 4]])
print(A)
# [[1 2] [3 4]]
print(A.shape)
# (2, 2)
print(A.dtype)
# dtype('int64')

B = np.array([[3, 0], [0, 6]])
print(A+B)
# array([[4, 2], [3, 10]])
print(A*B)
# array([[3, 0], [0, 24]])

5. 브로드캐스트

broadcast

형상이 다른 배열끼리 계산할 수 있는 넘파이의 기능

1차원 배열이 2차원 배열로 변형된 후 원소별 연산이 이뤄짐

6. 원소 접근

X = np.array([[51, 55], [14, 19], [0, 4]])
print(X)
# [[51 55] [14 19] [0 4]]
print(X[0])
# array([51, 55])
print(X[0][1])
# 55
for row in X:
    print(row)
# [51 55]
# [14 19]
# [0 4]

6-1. 평탄화

배열을 1차원 배열로 변환

X = np.array([[51, 55], [14, 19], [0, 4]])
X = X.flatten()
print(X)
# [51 55 14 19 0 4]

6-2. 인덱스로 원소 얻기

X = np.array([[51, 55], [14, 19], [0, 4]])
X = X.flatten()
print(X[np.array([0, 2, 4])])
# array([51, 14, 0])

6-3. 특정 조건을 만족하는 원소 얻기

X = np.array([[51, 55], [14, 19], [0, 4]])
X = X.flatten()
print(X>15)
# array([True, True, False, True, False, False], dtype=bool)
print(X[X>15])
# array([51, 55, 19])

'Study > ML, AL' 카테고리의 다른 글

[퍼셉트론] 퍼셉트론의 한계  (0) 2021.04.15
[퍼셉트론] 퍼셉트론이란 무엇일까  (0) 2021.04.15
matplotlib을 사용해봅시다  (0) 2021.04.14