lab 1 and 3
This commit is contained in:
		
							parent
							
								
									d27394b502
								
							
						
					
					
						commit
						7c4a2f3ed6
					
				@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					import numpy as np
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class lab1:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self):
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def main(self):
 | 
				
			||||||
 | 
					        x11 = np.random.normal(2, 1, [10, 1])
 | 
				
			||||||
 | 
					        x21 = np.random.normal(6, 2, [10, 1])
 | 
				
			||||||
 | 
					        x11_od=x11.flatten()
 | 
				
			||||||
 | 
					        x21_od=x21.flatten()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        mu_x11 = x11.mean()
 | 
				
			||||||
 | 
					        sigma_x11 = x11.std()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        mu_x21 = x21.mean()
 | 
				
			||||||
 | 
					        sigma_x21 = x21.std()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        print("Массив x11:")
 | 
				
			||||||
 | 
					        print("Среднее значение:", mu_x11)
 | 
				
			||||||
 | 
					        print("Среднеквадратическое отклонение:", sigma_x11)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        print("Массив x21:")
 | 
				
			||||||
 | 
					        print("Среднее значение:", mu_x21)
 | 
				
			||||||
 | 
					        print("Среднеквадратическое отклонение:", sigma_x21)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        corr_coeff=np.corrcoef(x11_od,x21_od)[0,1]
 | 
				
			||||||
 | 
					        print("Коэффициент корреляции между x11 и x21:", corr_coeff)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == "__main__":
 | 
				
			||||||
 | 
					    l1 = lab1()
 | 
				
			||||||
 | 
					    l1.main()
 | 
				
			||||||
@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					import numpy as np
 | 
				
			||||||
 | 
					import matplotlib.pyplot as plt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class lab2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self):
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def main(self):
 | 
				
			||||||
 | 
					        # Данные для графика
 | 
				
			||||||
 | 
					        x11 = np.random.normal(2, 1, [10, 1])
 | 
				
			||||||
 | 
					        x21 = np.random.normal(6, 2, [10, 1])
 | 
				
			||||||
 | 
					        print(x11,x21)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Рисуем график
 | 
				
			||||||
 | 
					        plt.scatter(x11, x21)
 | 
				
			||||||
 | 
					        plt.xlabel("x")
 | 
				
			||||||
 | 
					        plt.ylabel("y")
 | 
				
			||||||
 | 
					        plt.title("Диаграмма рассеяния")
 | 
				
			||||||
 | 
					        plt.show()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        hist_data = np.vstack((x11, x21))
 | 
				
			||||||
 | 
					        print ("Данные для гистограммы:", hist_data )
 | 
				
			||||||
 | 
					        plt.hist(hist_data)
 | 
				
			||||||
 | 
					        plt.xlabel('Значение признака')
 | 
				
			||||||
 | 
					        plt.ylabel('Частота появления значения признака')
 | 
				
			||||||
 | 
					        plt.title('Гистограмма')
 | 
				
			||||||
 | 
					        plt.show()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #  Коробочковая диаграмма
 | 
				
			||||||
 | 
					        plt.boxplot((x11.ravel(), x21.ravel()), notch=True)
 | 
				
			||||||
 | 
					        print("Данные для коробочковой диаграммы",x11.ravel(), x21.ravel())
 | 
				
			||||||
 | 
					        plt.xlabel('№ объекта')
 | 
				
			||||||
 | 
					        plt.ylabel('Значение признака')
 | 
				
			||||||
 | 
					        plt.title('Ящик с усами')
 | 
				
			||||||
 | 
					        plt.show()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == "__main__":
 | 
				
			||||||
 | 
					    l2 = lab2()
 | 
				
			||||||
 | 
					    l2.main()
 | 
				
			||||||
@ -0,0 +1,92 @@
 | 
				
			|||||||
 | 
					from sklearn.datasets import load_iris
 | 
				
			||||||
 | 
					import numpy as np
 | 
				
			||||||
 | 
					import matplotlib.pyplot as plt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class lab3:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self):
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def main(self):
 | 
				
			||||||
 | 
					        data = load_iris()
 | 
				
			||||||
 | 
					        X = data.data
 | 
				
			||||||
 | 
					        print('Все данные', data.data)
 | 
				
			||||||
 | 
					        Y = data.target
 | 
				
			||||||
 | 
					        print(data.target)
 | 
				
			||||||
 | 
					        Y_str = data.target_names
 | 
				
			||||||
 | 
					        print(Y_str)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        setosa_inds = Y == np.where(Y_str == 'setosa')
 | 
				
			||||||
 | 
					        setosa_data = X[np.ravel(setosa_inds), :]
 | 
				
			||||||
 | 
					        print('Индексы setosa', setosa_inds)
 | 
				
			||||||
 | 
					        print('Признаки setosa:', setosa_data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        versicolor_inds = Y == np.where(Y_str == 'versicolor')
 | 
				
			||||||
 | 
					        versicolor_data = X[np.ravel(versicolor_inds), :]
 | 
				
			||||||
 | 
					        virginica_inds = Y == np.where(Y_str == 'virginica')
 | 
				
			||||||
 | 
					        virginica_data = X[np.ravel(virginica_inds), :]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        plt.scatter(setosa_data[:, 0], setosa_data[:, 1])
 | 
				
			||||||
 | 
					        plt.title('Скаттерограмма setosa по признакам 1 и 2')
 | 
				
			||||||
 | 
					        plt.xlabel('Длина чашелистика')
 | 
				
			||||||
 | 
					        plt.ylabel('Ширина чашелистика')
 | 
				
			||||||
 | 
					        plt.show()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        plt.scatter(versicolor_data[:, 0], versicolor_data[:, 1])
 | 
				
			||||||
 | 
					        plt.title('Скаттерограмма versicolor по признакам 1 и 2')
 | 
				
			||||||
 | 
					        plt.xlabel('Длина чашелистика')
 | 
				
			||||||
 | 
					        plt.ylabel('Ширина чашелистика')
 | 
				
			||||||
 | 
					        plt.show()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        plt.scatter(virginica_data[:, 0], virginica_data[:, 1])
 | 
				
			||||||
 | 
					        plt.title('Скаттерограмма virginica по признакам 1 и 2')
 | 
				
			||||||
 | 
					        plt.xlabel('Длина чашелистика')
 | 
				
			||||||
 | 
					        plt.ylabel('Ширина чашелистика')
 | 
				
			||||||
 | 
					        plt.show()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # расчет статистических характеристик коэф. корреляции для признаков
 | 
				
			||||||
 | 
					        setosa_sl_mean = np.mean(setosa_data[:, 0])
 | 
				
			||||||
 | 
					        setosa_sl_std = np.std(setosa_data[:, 0])
 | 
				
			||||||
 | 
					        setosa_sw_mean = np.mean(setosa_data[:, 1])
 | 
				
			||||||
 | 
					        setosa_sw_std = np.std(setosa_data[:, 1])
 | 
				
			||||||
 | 
					        setosa_cor = np.corrcoef(setosa_data[:, 0], setosa_data[:, 1])[0, 1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        versicolor_sl_mean = np.mean(versicolor_data[:, 0])
 | 
				
			||||||
 | 
					        versicolor_sl_std = np.std(versicolor_data[:, 0])
 | 
				
			||||||
 | 
					        versicolor_sw_mean = np.mean(versicolor_data[:, 1])
 | 
				
			||||||
 | 
					        versicolor_sw_std = np.std(versicolor_data[:, 1])
 | 
				
			||||||
 | 
					        versicolor_cor = np.corrcoef(versicolor_data[:, 0], versicolor_data[:, 1])[0, 1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        virginica_sl_mean = np.mean(virginica_data[:, 0])
 | 
				
			||||||
 | 
					        virginica_sl_std = np.std(virginica_data[:, 0])
 | 
				
			||||||
 | 
					        virginica_sw_mean = np.mean(virginica_data[:, 1])
 | 
				
			||||||
 | 
					        virginica_sw_std = np.std(virginica_data[:, 1])
 | 
				
			||||||
 | 
					        virginica_cor = np.corrcoef(virginica_data[:, 0], virginica_data[:, 1])[0, 1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        print('Setosa: Среднее значение длины чашелистика:', setosa_sl_mean, 'СКО длины чашелистика:', setosa_sl_std, 'Среднее значение ширины чашелистика:', setosa_sw_mean, 'СКО ширины чашелистика:', setosa_sw_std)
 | 
				
			||||||
 | 
					        print('Коэффициент корреляции:', setosa_cor)
 | 
				
			||||||
 | 
					        print('Versicolor: Среднее значение длины чашелистика:', versicolor_sl_mean, 'СКО длины чашелистика:', versicolor_sl_std, 'Среднее значение ширины чашелистика:', versicolor_sw_mean, 'СКО ширины чашелистика:', versicolor_sw_std)
 | 
				
			||||||
 | 
					        print('Коэффициент корреляции:', versicolor_cor)
 | 
				
			||||||
 | 
					        print('Virginica: Среднее значение длины чашелистика:', virginica_sl_mean, 'СКО длины чашелистика:', virginica_sl_std, 'Среднее значение ширины чашелистика:', virginica_sw_mean, 'СКО ширины чашелистика:', virginica_sw_std)
 | 
				
			||||||
 | 
					        print('Коэффициент корреляции:', virginica_cor)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # построение гистограммы и коробочковой диаграммы для setosa по признакам 1 и 2
 | 
				
			||||||
 | 
					        hist_data = np.vstack((setosa_data[:, 0], setosa_data[:, 1]))
 | 
				
			||||||
 | 
					        plt.hist(hist_data.T, label=['Длина чашелистика', 'Ширина чашелистика'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Настройка графика
 | 
				
			||||||
 | 
					        plt.title('Гистограмма setosa по признакам 1 и 2')
 | 
				
			||||||
 | 
					        plt.xlabel('Значение')
 | 
				
			||||||
 | 
					        plt.ylabel('Частота')
 | 
				
			||||||
 | 
					        plt.legend()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        plt.show()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        plt.boxplot((setosa_data[:, 0].ravel(), setosa_data[:, 1].ravel()), notch=False, labels=['Длина чашелистика', 'Ширина чашелистика'])
 | 
				
			||||||
 | 
					        plt.title('Коробочковая диаграмма setosa по признакам 1 и 2')
 | 
				
			||||||
 | 
					        plt.ylabel('Значение')
 | 
				
			||||||
 | 
					        plt.show()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == "__main__":
 | 
				
			||||||
 | 
					    l3 = lab3()
 | 
				
			||||||
 | 
					    l3.main()
 | 
				
			||||||
							
								
								
									
										0
									
								
								app/labs/lab6.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								app/labs/lab6.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								app/labs/lab7.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								app/labs/lab7.py
									
									
									
									
									
										Normal file
									
								
							@ -55,5 +55,5 @@ class labTest:
 | 
				
			|||||||
            print("Ошибка ввода: необходимо ввести целые числа для a, b и c.")
 | 
					            print("Ошибка ввода: необходимо ввести целые числа для a, b и c.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == "__main__":
 | 
					if __name__ == "__main__":
 | 
				
			||||||
    lab_test = labTest()
 | 
					    lT = labTest()
 | 
				
			||||||
    lab_test.start()
 | 
					    lT.start()
 | 
				
			||||||
 | 
				
			|||||||
@ -1,12 +1,12 @@
 | 
				
			|||||||
from app.utils.system import clear_console
 | 
					from app.utils.system import clear_console
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# from app.zadachi.lab1 import lab1
 | 
					from app.labs.lab1 import lab1
 | 
				
			||||||
# from app.zadachi.lab2 import lab2
 | 
					# from app.labs.lab2 import lab2
 | 
				
			||||||
# from app.zadachi.lab3 import lab3
 | 
					from app.labs.lab3 import lab3
 | 
				
			||||||
# from app.zadachi.lab4 import lab4
 | 
					# from app.labs.lab4 import lab4
 | 
				
			||||||
# from app.zadachi.lab5 import lab5
 | 
					# from app.labs.lab5 import lab5
 | 
				
			||||||
# from app.zadachi.lab6 import lab6
 | 
					# from app.labs.lab6 import lab6
 | 
				
			||||||
# from app.zadachi.lab7 import lab7
 | 
					# from app.labs.lab7 import lab7
 | 
				
			||||||
from app.labs.labTest import labTest
 | 
					from app.labs.labTest import labTest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class menu:
 | 
					class menu:
 | 
				
			||||||
@ -18,9 +18,9 @@ class menu:
 | 
				
			|||||||
        clear_console()
 | 
					        clear_console()
 | 
				
			||||||
        while True:
 | 
					        while True:
 | 
				
			||||||
            print('\nMain Menu:')
 | 
					            print('\nMain Menu:')
 | 
				
			||||||
            print('1. Задача 1 (Не работает)')
 | 
					            print('1. Задача 1')
 | 
				
			||||||
            print('2. Задача 2 (Не работает)')
 | 
					            print('2. Задача 2 (Не работает)')
 | 
				
			||||||
            print('3. Задача 3 (Не работает)')
 | 
					            print('3. Задача 3')
 | 
				
			||||||
            print('4. Задача 4 (Не работает)')
 | 
					            print('4. Задача 4 (Не работает)')
 | 
				
			||||||
            print('5. Задача 5 (Не работает)')
 | 
					            print('5. Задача 5 (Не работает)')
 | 
				
			||||||
            print('6. Задача 6 (Не работает)')
 | 
					            print('6. Задача 6 (Не работает)')
 | 
				
			||||||
@ -32,11 +32,11 @@ class menu:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            clear_console()
 | 
					            clear_console()
 | 
				
			||||||
            if choice == '1':
 | 
					            if choice == '1':
 | 
				
			||||||
                pass
 | 
					                self.lab1_menu()
 | 
				
			||||||
            # elif choice == '2':
 | 
					            # elif choice == '2':
 | 
				
			||||||
            #     self.lab2_menu()  # Переход к подменю Задачи 2
 | 
					            #     self.lab2_menu()  # Переход к подменю Задачи 2
 | 
				
			||||||
            # elif choice == '3':
 | 
					            elif choice == '3':
 | 
				
			||||||
            #     self.lab3_menu()  # Переход к подменю Задачи 3
 | 
					                self.lab3_menu()
 | 
				
			||||||
            # elif choice == '4':
 | 
					            # elif choice == '4':
 | 
				
			||||||
            #     self.lab4_menu()  # Добавлен вызов меню задачи 4
 | 
					            #     self.lab4_menu()  # Добавлен вызов меню задачи 4
 | 
				
			||||||
            elif choice == '8':
 | 
					            elif choice == '8':
 | 
				
			||||||
@ -47,15 +47,56 @@ class menu:
 | 
				
			|||||||
            else:
 | 
					            else:
 | 
				
			||||||
                print('Invalid option')
 | 
					                print('Invalid option')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def lab1_menu(self):
 | 
				
			||||||
 | 
					        """Меню для lab 1 с подкатегориями."""
 | 
				
			||||||
 | 
					        clear_console()
 | 
				
			||||||
 | 
					        while True:
 | 
				
			||||||
 | 
					            print('\nЛаб 1:')
 | 
				
			||||||
 | 
					            print('1. Генерация одномерных данных. Статистические характеристики')
 | 
				
			||||||
 | 
					            print('0. Назад')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            choice = input('Выберите подкатегорию: ')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            clear_console()
 | 
				
			||||||
 | 
					            l1 = lab1()  # создаем объект для задачи 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if choice == '1':
 | 
				
			||||||
 | 
					                l1.main()  # Выполнить первую подзадачу
 | 
				
			||||||
 | 
					            elif choice == '0':
 | 
				
			||||||
 | 
					                break  # Вернуться в основное меню
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                print('Неверный выбор, попробуйте снова.')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def lab2_menu(self):
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def lab3_menu(self):
 | 
				
			||||||
 | 
					        """Меню для lab 3 с подкатегориями."""
 | 
				
			||||||
 | 
					        clear_console()
 | 
				
			||||||
 | 
					        while True:
 | 
				
			||||||
 | 
					            print('\nЛаб 3:')
 | 
				
			||||||
 | 
					            print('1. Набор данных «Ирисы Фишера»»')
 | 
				
			||||||
 | 
					            print('0. Назад')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            choice = input('Выберите подкатегорию: ')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            clear_console()
 | 
				
			||||||
 | 
					            l3 = lab3()  # создаем объект для задачи 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if choice == '1':
 | 
				
			||||||
 | 
					                l3.main()  # Выполнить первую подзадачу
 | 
				
			||||||
 | 
					            elif choice == '0':
 | 
				
			||||||
 | 
					                break  # Вернуться в основное меню
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                print('Неверный выбор, попробуйте снова.')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def labTest_menu(self):
 | 
					    def labTest_menu(self):
 | 
				
			||||||
        """Меню для задачи Тест"""
 | 
					        """Меню для lab Тест"""
 | 
				
			||||||
        clear_console()
 | 
					        clear_console()
 | 
				
			||||||
        lT = labTest()
 | 
					        lT = labTest()
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        while True:
 | 
					        while True:
 | 
				
			||||||
            print('\nЗадача Тест:')
 | 
					            print('\nЛаб Тест:')
 | 
				
			||||||
            print('1. Рассчитать значение дискриминанта и по результату выдать в консоль сообщение, сколько вещественных корней имеет уравнение.')
 | 
					            print('1. Рассчитать значение дискриминанта и по результату выдать в консоль сообщение, сколько вещественных корней имеет уравнение.')
 | 
				
			||||||
            print('0. Назад')
 | 
					            print('0. Назад')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,2 +1,3 @@
 | 
				
			|||||||
numpy==2.1.2
 | 
					numpy==1.24.4
 | 
				
			||||||
matplotlib==3.9.2
 | 
					matplotlib==3.7.5
 | 
				
			||||||
 | 
					scikit-learn==1.3.2
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user