Study/Python

[Python] 데이터 분석 특강 실습 정리

ChoiSenn 2021. 6. 29. 15:47

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0., 5., 0.2)
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')  # 세 개의 그래프 한 번에 표현
"""
plt.plot(t, t, 'r--')
plt.plot(t, t**2, 'bs')
plt.plot(t, t**3, 'g^')
이것들과 같음
"""
plt.show()

 

 

 

-

 

 

 

import numpy as np

print(np.pi)  # 파이 값
print(np.sin(0))  # sin함수
print(np.cos(np.pi))  # cos함수. cos(3.14)

a = np.random.rand(5)  # rand함수로 랜덤 함수 다섯 개.
print(a)  # 랜덤 값들 출력
print(type(a))  # 랜덤 값들의 타입 값 출력 (다차원 배열 타입)

print(np.random.choice(6, 10))  # 정수 난수 출력. 인자의 뜻은 0~5의 여섯가지 정수 중 10개 출력
print(np.random.choice(10, 6, replace=False))  # replace=False를 인자로 주면 중복 금지
print(np.random.choice(6, 10, p=[0.1, 0.1, 0.5, 0.1, 0.1, 0.1]))  # 확률 지정

 

 

 

-

 

 

 

import matplotlib.pyplot as plt
import numpy as np

dice = np.random.choice(6, 100000, p=[0.1, 0.1, 0.5, 0.1, 0.1, 0.1])  # numpy를 사용해 히스토그램 그리기

plt.hist(dice, bins=6)
plt.show()

 

 

 

-

 

 

 

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randint(10, 100, 2000)
y = np.random.randint(10, 100, 2000)
size = np.random.rand(2000) * 100
print(len(x))
print(len(y))
print(len(size))

plt.scatter(x, y, s=size, c=x, cmap='jet', alpha=0.7)
plt.colorbar()
plt.show()

 

 

 

-

 

 

 

import numpy as np

a = np.array([1, 2, 3, 4])  # 리스트로 ndarray 만들기
print(a)

print(a[1], a[-1])  # 인덱싱
print(a[1:])  # 슬라이싱

a = np.zeros(10)  # 0으로 이루어진, 크기가 10인 배열 생성
print(a)

 

 

 

-

 

 

 

import matplotlib.pyplot as plt
import numpy as np

a = np.random.randn(1000000)  # 정규분포를 갖는 랜덤 숫자

plt.figure(dpi = 300)
plt.hist(a, bins = 1000)
plt.show()

 

 

 

-

 

 

 

import numpy as np

a = np.zeros(10) + 5  # 값들에 5를 한 번에 더하기
print(a)

b = np.linspace(1, 2, 11)  # 1에서 2까지를 11개로 나누기
print(np.sqrt(b))  # b값의 제곱근을 출력

 

 

 

-

 

 

 

import matplotlib.pyplot as plt
import numpy as np

a = np.arange(-np.pi, np.pi, np.pi/100)  # numpy를 활용하여

plt.plot(a, np.sin(a))  # sin그래프
plt.plot(a, np.cos(a))  # cos그래프
plt.plot(a + np.pi/2, np.sin(a))  # a+pi/2와 a의 sin을 이용한 그래프 그리기
plt.show()

 

 

 

-

 

 

 

import numpy as np

a = np.arange(-5, 5)
print(a)
print(a[a<0])  # 인덱스를 이용해 True인 것만 출력

mask1 = abs(a) > 3  # abs는 절댓값. 절댓값을 취했을 때 3보다 큰 것 출력
print(a[mask1])

mask2 = abs(a) > 3  # 절댓값이 3보다 큰 경우 True
mask3 = abs(a) % 2 == 0  # 절댓값이 짝수인 경우 True
print(a[mask2+mask3])  # 둘 중 하나라도 참일 경우 출력
print(a[mask2*mask3])  # 둘 다 참일 경우 출력

 

 

 

-

 

 

 

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randint(-100, 100, 1000)  # 1000개의 랜덤 값 출력
y = np.random.randint(-100, 100, 1000)

print(len(x))
print(len(y))
print(len(size))
mask1 = abs(x) > 50  # x에 저장된 값 중 절댓값이 50보다 큰 경우
mask2 = abs(y) > 50
x = x[mask1 + mask2]  # mask1과 mask2 중 하나라도 충족한 경우
y = y[mask1 + mask2]
size = np.random.rand(len(x)) * 100

plt.scatter(x, y, s = size, c=x, cmap='jet')
plt.colorbar()
plt.show()

 

 

 

# 최근 버전의 numpy에서는 s의 값과 x, y 값의 길이를 맞춰주어야 한다. 따라서 size 값을 x나 y의 길이로 주지 않으면 오류가 일어난다.