/
CW3
/
The_Project
Обзор
Документация
Войти
/
CW3
/
The_Project
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/data/sample_generator.py
50 строк
2 KB
CW3
Initial project setup with structure and CI/CD
28 дек 2025, 12:40
28 дек 2025, 12:40
5cacb7a
Код
Авторство
О чём код?
import pandas as pd import numpy as np from typing import List def generate_sample_grades(output_path: str = 'data/grades.csv', num_students: int = 100): """ Генерация примерных данных оценок Args: output_path: Путь для сохранения num_students: Количество студентов """ np.random.seed(42) courses = ['CS101', 'MATH201', 'PHYS101', 'ENG101', 'HIST101'] grades = [] for student_id in range(1000, 1000 + num_students): for course in courses: # Оценка зависит от "способностей" студента base_ability = np.random.normal(0.7, 0.2) # Случайный шум noise = np.random.normal(0, 0.1) # Итоговая оценка (0-100) final_grade = int((base_ability + noise) * 100) final_grade = max(40, min(100, final_grade)) # Ограничение 40-100 # Посещаемость коррелирует с оценкой attendance_rate = max(0.5, min(1.0, base_ability + np.random.normal(0, 0.05))) # Выполненные задания assignments_completed = int(base_ability * 10) + np.random.randint(-2, 3) assignments_completed = max(3, min(10, assignments_completed)) grades.append({ 'student_id': student_id, 'course': course, 'final_grade': final_grade, 'attendance_rate': attendance_rate, 'assignments_completed': assignments_completed }) df = pd.DataFrame(grades) df.to_csv(output_path, index=False, encoding='utf-8') print(f"Пример оценок сохранен в {output_path} ({len(df)} записей)") return df