문자집합을 컴퓨터에 저장하기 위해 Byte형태로 표현한 방식. ASCII는 한국어, 중국어 등을 표현을 못함. 그래서 모든 언어를 표현할 수 있는 유니코드가 나오게 됨. 유니코드를 표현할 수 있는 UTF-8이 가장 많이 사용됨.
CP949 : 영문 MS Window 기본인코딩
np.random.normal(mean,sd,size)
np.random.poisson(lambda, size)
등
np.random을 통해 특정 분포 생성 가능
from scipy import stats
stats.normal.interval(.95, loc = mean,scale = s.e) #정규분포의 CI
stats.t.interval(.95, loc = mean,scale = s.e) t분포의 CI
#standard error는 표본의 sd에서 sqrt(n)을 나누어 계산
1.matplotlib
import matplotlib.pyplot as plt # yerr과 capsize를 이용하면 신뢰구간 표현가능
plt.bar(x = 's1', height = s1_mean, yerr = CI1[1]-s1_mean, capsize = 10)
plt.bar(x = 's2', height = s2_mean, yerr = CI2[1]-s2_mean, capsize = 10)
plt.axhline(pop_mean, linestyle = '--', color = '#4000c7')
plt.axhline(s1_mean, color = 'black', xmin = 0.15, xmax = 0.35)
plt.axhline(s2_mean, color = 'black', xmin = 0.65, xmax = 0.85)
#axvline은 수직선을 그려줌
2.seaborn 이용
import seaborn as sns
sea1 = s1[['오존(ppm)']]
sea1['sample'] = 's1'
sea2 = s2[['오존(ppm)']]
sea2['sample'] = 's2'
sea = pd.concat([sea1,sea2])
})
sns.barplot(
x = 'sample',
y = '오존(ppm)',
data = sea,
hue = 'sample',
ci = 95, #신뢰구간 표시
capsize = .1 #capsize 조절
)
plt.axhline(pop_mean, linestyle = '--', color = '#4000c7')
plt.legend(loc='upper right')
plt.show()
seaborn은 확실히 tidy table형식에서 잘 작동하였음
import numpy
index_all = np.arange(start=0, stop = len(df), step=1)
np.random.seed()
s_index = np.random.choice(index_all, size)
s = df[df.index.isin(list(s_index))]
df.sample(n=500, random_state = 1)
df.sample(frac = 0.2, random_state = 1)
df.sample(n=500, axis = 1, random_state = 1) #열 추출
같은 seed라도 두 방법의 결과가 다른데 아마 numpy와 pandas에서의 난수 생성 방법이 달라서 그런 것 아닐까...
np.random.seed(100)
poi = np.random.poisson(5, 1000)
stats.normaltest(poi).pvalue
# 정규분포가 아님 p-value < 0.05
#샘플링 후 평균 계산
poi_mean = []
for i in range(0,1000):
poi_100 = np.random.choice(poi,100)
poi_mean.append(np.mean(poi_100))
stats.normaltest(poi_mean).pvalue
#normaltest의 p-value가 0.05이상이므로 정규성을 만족한다고 볼 수 있음.
plt.hist(poi_mean, color = 'g')
plt.grid()
plt.title('포아송 분포의 평균들')
plt.show()
np.std(sample, ddof = ) #샘플의 sd 계산가능
plt.bar(x=['s1','s2'], y=[s1['오존(ppm)'].mean(),s2['오존(ppm)'].mean()],color=['b','r'])
sns.barplot(x = x, y = y)` #list로써 x, y를 지정해줄 수 있음