[Python] 데이터 분석 특강 실습 정리
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의 길이로 주지 않으면 오류가 일어난다.