форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
51 строка
1.1 KiB
Python
51 строка
1.1 KiB
Python
import math
|
|
|
|
def calc(sample):
|
|
minimum =min(sample)
|
|
maximum=max(sample)
|
|
print(minimum,maximum)
|
|
ran = maximum-minimum
|
|
|
|
n= len(sample)
|
|
mean = sum(sample)/n
|
|
sum1 = 0
|
|
for i in range(n):
|
|
sum1 = (sample[i]-mean)**2
|
|
std_dev = math.sqrt(1/n*sum1)
|
|
ratio = ran/std_dev if std_dev != 0 else 0
|
|
|
|
return {'min': minimum, 'max': maximum, 'range': ran, 'deviation': std_dev,'range to stddev': ratio, 'samplesize': n}
|
|
|
|
def intervals(sample,m):
|
|
stats =calc(sample)
|
|
|
|
minimum = stats['min']
|
|
maximum =stats['max']
|
|
|
|
sortedsam = sorted(sample)
|
|
n=len(sortedsam)
|
|
|
|
width =(maximum-minimum)/m
|
|
bounds = [minimum + i*width for i in range(m+1)]
|
|
|
|
c = [0]*m
|
|
s = 0
|
|
|
|
for i in range(m):
|
|
lower = bounds[i]
|
|
upper = bounds[i+1]
|
|
|
|
while s < n and sortedsam[s] <= upper:
|
|
if i ==m-1:
|
|
if sortedsam[s] >= lower:
|
|
c[i]+=1
|
|
else:
|
|
if lower <=sortedsam[s] < upper:
|
|
c[i]+=1
|
|
s +=1
|
|
|
|
return bounds, c
|
|
|
|
|
|
|