|
|
|
@ -30,31 +30,38 @@
|
|
|
|
>>> print(y)
|
|
|
|
>>> print(y)
|
|
|
|
[0, 0, 0, 0, 1, 2, 3.4, 4.5, 6, 7, 8.9]
|
|
|
|
[0, 0, 0, 0, 1, 2, 3.4, 4.5, 6, 7, 8.9]
|
|
|
|
>>> #2
|
|
|
|
>>> #2
|
|
|
|
>>> def histogram (viborka, korziny):
|
|
|
|
>>> def createHistogram(x, bins):
|
|
|
|
... niz_gran = min(viborka) #нижняя граница
|
|
|
|
... lowerBound = min(x) #нижняя граница
|
|
|
|
... verx_gran = max(viborka) #верхняя граница
|
|
|
|
... upperBound = max(x) #верхняя граница
|
|
|
|
... bins=(verx_gran-niz_gran)/korziny # Ширина одного интервала
|
|
|
|
... binWidth = (upperBound - lowerBound) / bins # Ширина одного интервала
|
|
|
|
... Num_elements = [0]*korziny # Создание списка для подсчёта элементов в каждом интервале
|
|
|
|
... binsElements = [] # Создание списка для подсчёта элементов в каждом интервале
|
|
|
|
... intervals = [] # Список для хранения границ интервалов
|
|
|
|
... intervals=[]
|
|
|
|
... for i in range(korziny):
|
|
|
|
... for i in range(bins + 1):
|
|
|
|
... lower = niz_gran + i * bins
|
|
|
|
... intervals.append(lowerBound + i * binWidth)
|
|
|
|
... upper = verx_gran + (i+1) * bins
|
|
|
|
... for j in range(bins):
|
|
|
|
... intervals.append((lower, upper))
|
|
|
|
... c = 0
|
|
|
|
... for x in viborka:
|
|
|
|
... for num in x:
|
|
|
|
... i = int((x-niz_gran)/bins) # Вычисление номера интервала для текущего элемента
|
|
|
|
... if intervals[j] <= num < intervals[j+1]:
|
|
|
|
... if i == korziny:
|
|
|
|
... c += 1
|
|
|
|
... i=korziny-1
|
|
|
|
... elif num == upperBound and j == bins - 1:
|
|
|
|
... Num_elements[i] +=1
|
|
|
|
... c += 1
|
|
|
|
... plt.hist(viborka, korziny)
|
|
|
|
... binsElements.append(c)
|
|
|
|
... plt.xlabel('Значения выборки')
|
|
|
|
... print("[Лев.гр Прав.гр] Кол-во эл-в") # Левая и правая границы интервала
|
|
|
|
... plt.ylabel('Число элементов')
|
|
|
|
... for w in range(bins):
|
|
|
|
... plt.title('Гистограмма выборки')
|
|
|
|
... print(f"{intervals[w]:.2f} {intervals[w+1]:.2f} {binsElements[w]}")
|
|
|
|
... plt.show()
|
|
|
|
... return binsElements
|
|
|
|
... return Num_elements
|
|
|
|
|
|
|
|
>>> data = [random.gauss(1, 20) for _ in range(100)]
|
|
|
|
>>> data = [random.gauss(1, 20) for _ in range(100)]
|
|
|
|
>>> histogram (data, 5)
|
|
|
|
>>> hist=createHistogram (data, 5)
|
|
|
|
|
|
|
|
[Лев.гр Прав.гр] Кол-во эл-в
|
|
|
|
|
|
|
|
-44.79 -24.74 9
|
|
|
|
|
|
|
|
-24.74 -4.69 29
|
|
|
|
|
|
|
|
-4.69 15.36 38
|
|
|
|
|
|
|
|
15.36 35.42 22
|
|
|
|
|
|
|
|
35.42 55.47 2
|
|
|
|
|
|
|
|
>>> print(hist)
|
|
|
|
|
|
|
|
[9, 29, 38, 22, 2]
|
|
|
|
```
|
|
|
|
```
|
|
|
|

|
|
|
|
|
|
|
|
```py
|
|
|
|
```py
|
|
|
|
>>> #3
|
|
|
|
>>> #3
|
|
|
|
>>> linear_regression = lambda b1, b2, x: b1+b2 * x
|
|
|
|
>>> linear_regression = lambda b1, b2, x: b1+b2 * x
|
|
|
|
|