Numpy : 행렬만들기, 산술연산자

dev_sang·2021년 12월 18일
0
post-thumbnail

엘리스 교육과정 13주차
머신러닝 기초 : Numpy

2차원 행렬만들기

  • 리스트 안에 리스트가 들어가 있는 것이 2차원 행렬
import numpy as np

def matrix_tutorial():
	A = [
    	[1,2,3,4],
        [5,6,7,8],
        [9,8,7,6]
    ]
    # A리스트에는 3개의 리스트원소들이 있음
    
    A = np.array(A) # numpy의 행렬 형식으로 만들기
    
    return A

출력

[[1,2,3,4],
 [5,6,7,8],
 [9,8,7,6]]

Numpy 산술연산자

np.sum() : 행렬 안 모든 값의 합 리턴

np.mean() : 행렬의 평균값

np.median() : 행렬의 중간값

np.std() : 행렬의 표준 편차 값

np.var() : 분산값

평균값과 중간값의 차이
https://ko.gadget-info.com/difference-between-mean

표준편차란?
https://www.youtube.com/watch?v=XrL2SbwAfhE


'표준화' 이해하기

import numpy as np

# 사람들 중 1명을 뽑았을 때 남성 또는 여성일 확률은? 
people = np.array([30,70]) # [ 남, 여 ]
normalized_people = people / 100 

# 근데 위 people에서 남자가 10명 들었다고 해보자.
# 그럼 총 110명이 된다
people = np.array([40,70]) # [ 남, 여 ]
normalized_people = people / 100 
# 이렇게 하면 제대로된 확률이 나오지 않는다 

normalized_people = people / 110 
# 전체 사람수를 늘려줘야 한다.

# 근데 매번 전체 사람 수 늘리기 귀찮지? 
normalized_people = people / (people[0] + people[1])  # 이렇게 짜준다

# 근데 외계인이 25명 추가 됬다.
people = np.array([40,70, 25]) # [ 남, 여, 외계인 ]
# 사람 수 또 늘려줘야 해?
normalized_people = people / (people[0] + people[1] + people[2])

# 근데 그거 귀찮아
normalized_people = people / np.sum(people)
# 이렇게 그냥 sum써주면 총 사람+외계인 수 나옴 ㅋ

코드 정리

import numpy as np

people = np.array([40,70, 25])
normalized_people = people / np.sum(people)

print(normalized_people)

출력

[0.2962963  0.51851852 0.18518519]

표준화 한 배열의 '분산' 이해하기

분산(variance)이란?
: 배열, 벡터, 행렬등에 들어있는 값들이 서로 퍼져있는? 정도를 나타내는 척도

import numpy as np

# 값들이 1 에 가깝게 분산되 경우
low_var = np.array([1, 0.9, 1.2, 1.5, 0.7, 1.0])

# 값들이 다 퍼져있는 경우
high_var = np.array([1, 10, 5, -20, 7, 30])

print("variance of low_var: ", np.var(low_var))
print("variance of high_var: ", np.var(high_var)) 

출력

variance of low_var: 0.0625
variance of high_var": 215.58333333333334

-> 분산이 클 수록 값이 커짐

profile
There is no reason for not trying.

0개의 댓글