Учебная практика (ознакомительная практика) относится к разделу Б2.О.01 блока «Практики» базового учебного плана основной профессиональной образовательной программы по направлению подготовки 09.03.03 «Прикладная информатика» и является видом учебной деятельности, направленной на ознакомление, формирование, закрепление, развитие практических навыков и компетенции в процессе выполнения определенных видов работ, связанных с будущей профессиональной деятельностью. Учебная практика проходила в Московском университете им. С.Ю. Витте (далее - Университете) на кафедре информационных систем
Цель практики
приобретение первичных профессиональных навыков, практического опыта, закрепление, систематизация и расширение теоретических знаний по дисциплинам учебного плана при прохождении учебной практики в Университете.
Задачи практики
Закрепление приобретенных теоретических знаний.
Приобретение навыков научного поиска и практической работы с информационными источниками данных.
Овладение практическими методиками формирования цели и задач для работы над групповым проектом, управления познавательной деятельностью.
Приобретение практических навыков участия в командной работе, в групповых проектах, распределения ролей в условиях командного взаимодействия
Приобретение практических навыков использования иностранного языка при анализе зарубежных информационных Интернет источников.
Приобретение навыков использования современных информационных технологий и программных средств для решения задач анализа данных.
Приобретение навыков инсталлирования программного обеспечения.
Формирование практических навыков по основам алгоритмизации вычислительных процессов и программированию решения задач обработки данных их отладке и тестирования на выбранной языковой платформе.
Получение навыков экспериментального исследования больших данных и практического решения информационных задач по обработке данных.
Получения навыков проведения инженерных расчетов.
Получение навыков самостоятельной работы.
Получение навыков подготовки отчетной документации
Источниками информации явились открытые информационные базы, информационно-справочные документы, интернет-ресурсы, учебно-методические материалы, размещенные в Электронном Университете, а также информация, представленная на официальном сайте университета в разделе «Сведения об образовательной организации»: https://www.muiv.ru/sveden/.
ОСНОВНАЯ ЧАСТЬ
выбор платформы и данных
Выбор платформы для разработки и необходимых библиотек
Для выполнения индивидуального задания по ознакомительной практике в качестве основной платформы для разработки была выбрана среда программирования Python, а в качестве среды разработки — PyCharm. Такой выбор обусловлен рядом преимуществ, которые делают Python одним из наиболее популярных языков программирования для анализа данных, статистических расчётов и визуализации.
Python отличается простым синтаксисом, высокой читаемостью кода и широким сообществом разработчиков. Он поддерживает множество библиотек и фреймворков, позволяющих решать широкий спектр задач — от работы с массивами чисел до построения графиков и работы с таблицами.
В рамках реализации поставленной задачи использовались следующие библиотеки:
NumPy — используется для высокопроизводительных операций с массивами и матрицами, обеспечивает удобные математические функции, включая генерацию случайных чисел и вычисление стандартного отклонения;
Pandas — предназначена для работы с табличными данными, упрощает операции с сериями (Series) и датафреймами (DataFrame);
Matplotlib — библиотека для визуализации данных, позволяет строить линейные графики, гистограммы и другие виды диаграмм;
Math — стандартная библиотека Python, содержащая базовые математические функции, применяемые для округления чисел и других операций.
Таким образом, выбор платформы и библиотек обеспечивает все необходимые инструменты для генерации данных, выполнения математического анализа и представления результатов в графической форме. Это позволяет комплексно подойти к решению учебной задачи с соблюдением всех требований к структуре и функциональности программного обеспечения.
Обоснование выбора платформы интерпретатора языка Python
В качестве основной платформы разработки для выполнения анализа данных был выбран язык программирования Python. Такой выбор обусловлен его широким распространением, доступностью, гибкостью и поддержкой большого количества специализированных библиотек.
Python — это высокоуровневый язык программирования общего назначения, который активно используется в задачах анализа данных, машинного обучения, научных исследований и инженерных расчётов. Он обладает следующими ключевыми преимуществами:
Простота синтаксиса и высокая читаемость кода, что существенно ускоряет процесс разработки и снижает вероятность ошибок;
Кроссплатформенность, позволяющая запускать программы на различных операционных системах без модификаций;
Большое сообщество разработчиков и наличие обширной документации, что облегчает поиск решений и повышает доступность обучения;
Интеграция с современными библиотеками и инструментами, необходимыми для обработки, анализа и визуализации данных;
Наличие встроенных и внешних средств для отладки и тестирования кода, что особенно важно при работе с большими объёмами информации.
Также важным фактором при выборе Python является его популярность в образовательной и научной среде, что делает его изучение особенно актуальным для студентов направления «Прикладная информатика».
Учитывая все вышеперечисленные преимущества, язык Python был признан наиболее подходящим для выполнения индивидуального задания по учебной практике, связанного с генерацией, анализом и визуализацией числовых данных.
Выбор библиотек для анализа данных
Для выполнения поставленного задания по анализу и визуализации данных были выбраны следующие библиотеки языка Python: Pandas, Matplotlib, Requests и NumPy. Выбор данных инструментов обоснован их функциональными возможностями, популярностью в сообществе специалистов по обработке данных и совместимостью с задачами, поставленными в рамках практики.
Pandas
Pandas — это одна из ключевых библиотек Python для обработки и анализа структурированных данных. Основными преимуществами являются:
удобное представление данных в виде объектов Series и DataFrame, аналогичных табличным структурам в Excel или базах данных;
наличие множества встроенных функций для фильтрации, сортировки, агрегации, группировки и трансформации данных;
простая интеграция с другими библиотеками и возможность экспорта/импорта данных в различных форматах (CSV, Excel, JSON и др.).
В рамках задания Pandas используется для создания и обработки одномерного массива случайных чисел, а также для построения структурированных таблиц и их анализа.
Matplotlib
Matplotlib — это универсальное средство для построения графиков и визуализации числовых данных. Она позволяет:
создавать линейные графики, гистограммы, круговые диаграммы и другие типы визуализаций;
гибко настраивать внешний вид графиков (цвета, подписи, шрифты, легенды и пр.);
интегрироваться с другими библиотеками анализа данных (в частности, с Pandas и NumPy).
В данном проекте библиотека используется для построения линейных графиков отсортированных данных и визуализации распределения значений в виде гистограммы.
Requests
Библиотека Requests применяется для отправки HTTP-запросов и работы с веб-ресурсами. Хотя в текущем задании генерация данных осуществляется локально, Requests может использоваться в задачах загрузки внешних наборов данных (Dataset) с онлайн-источников или API, если это требуется по условиям индивидуального задания.
Использование данной библиотеки демонстрирует навык подключения внешних ресурсов, что важно для будущих проектов, основанных на работе с открытыми данными и интернет-сервисами.
NumPy
NumPy является фундаментальной библиотекой для научных вычислений и работы с многомерными массивами данных. Её преимущества:
высокая производительность при обработке больших объёмов чисел;
наличие широкого спектра математических функций: от простых арифметических операций до вычисления дисперсии и стандартного отклонения;
возможность генерации случайных чисел с различными распределениями.
В данной работе NumPy используется для генерации массива случайных чисел, а также для вычисления статистических характеристик, таких как среднеквадратическое отклонение.
Получение данных
Предварительный анализ данных
Предварительный анализ данных — это первый и важный этап в процессе обработки информации, направленный на выявление основных характеристик и особенностей полученного набора данных. Он позволяет сформировать общее представление о структуре, диапазоне значений, наличии аномалий или повторений, а также подготовить данные к дальнейшей обработке и визуализации.
В рамках данного задания анализ проводился на сгенерированном наборе случайных целых чисел. Для этих целей были определены следующие характеристики:
количество элементов в наборе;
минимальное и максимальное значение;
количество уникальных значений;
наличие и количество повторяющихся значений;
визуальное распределение данных (на этапе гистограммы).
Данные были представлены в виде объекта Series библиотеки pandas, что позволило удобно применять встроенные методы анализа.
Листинг 1 – Пример собственного программного кода.
import numpy as np
import pandas as pd
# Генерация набора случайных целых чисел от -10000 до 10000 (1000 элементов)
random_numbers = np.random.randint(-10000, 10001, size=1000)
# Создание объекта Series
series = pd.Series(random_numbers)
# Первичный анализ
print("Количество элементов в серии:", series.size)
print("Минимальное значение:", series.min())
print("Максимальное значение:", series.max())
print("Количество уникальных значений:", series.nunique())
print("Количество повторяющихся значений:", series.size - series.nunique())
print("Первые 10 значений серии:\n", series.head(10))
Рисунок 1 –
На данном этапе были получены основные сведения о наборе данных, что позволило убедиться в корректности генерации чисел, их случайности и пригодности для дальнейшего анализа.
Предварительный анализ также дал представление о распределении значений, на основе которого в последующих этапах будет построена гистограмма и рассчитаны числовые характеристики.
1.2.2 Выбор формата хранения данных
Выбор подходящего формата хранения данных является важной частью этапа подготовки информации к обработке и анализу. В рамках данного задания для хранения и последующего анализа набора числовых данных был выбран формат pandas.Series, а также pandas.DataFrame — универсальные структуры данных библиотеки pandas, предоставляющие удобные методы работы с одномерными и двумерными массивами.
Обоснование выбора:
Series позволяет эффективно хранить и обрабатывать одномерные массивы, предоставляя доступ к различным статистическим и логическим операциям;
DataFrame даёт возможность дополнительно обогащать данные новыми столбцами (например, отсортированными значениями) и применять группировки, фильтрации, агрегации;
Оба формата совместимы с библиотеками визуализации, такими как matplotlib, что делает их идеальными для анализа и представления данных.
Дополнительным преимуществом является поддержка экспорта/импорта данных из/в различные форматы: .csv, .xlsx, .json, что делает pandas удобным инструментом для последующей интеграции в реальные проекты.
Листинг 2 – Пример собственного программного кода.
import pandas as pd
import numpy as np
# Генерация случайных чисел
random_numbers = np.random.randint(-10000, 10001, size=1000)
# Создание Series — базовый формат хранения
series = pd.Series(random_numbers)
# Преобразование в DataFrame для расширенного анализа
df = pd.DataFrame({'Исходные данные': series})
# Добавление отсортированных значений
df['По возрастанию'] = df['Исходные данные'].sort_values(ascending=True).values
df['По убыванию'] = df['Исходные данные'].sort_values(ascending=False).values
# Сохранение DataFrame в файл (при необходимости)
df.to_csv('dataset.csv', index=False)
print("Формат хранения данных: DataFrame (табличная структура с 3 столбцами)")
print(df.head())
Рисунок 2 –
Формат DataFrame позволил удобно представить исходные данные и добавить дополнительные атрибуты для их анализа. Это также упростило дальнейшую визуализацию данных с использованием библиотеки matplotlib.
1.2.3 Очистка данных от цифрового мусора
Очистка данных — важный этап подготовки информации к анализу, позволяющий повысить качество результатов и избежать искажений в вычислениях. Даже при генерации чисел с помощью встроенных функций возможно появление "цифрового мусора" — некорректных значений, дубликатов, пропусков или значений, выходящих за предполагаемый диапазон.
В рамках данного задания использовалась генерация случайных целых чисел в диапазоне от -10000 до 10000. Несмотря на то, что данные были созданы программно, для демонстрации навыков очистки данных были реализованы следующие действия:
удаление дубликатов;
проверка наличия пустых (NaN) значений;
фильтрация значений, выходящих за допустимый диапазон (например, меньше -10000 или больше 10000, в случае ошибок генерации);
преобразование типов при необходимости.
Листинг 3 – Пример собственного программного кода.
import pandas as pd
import numpy as np
# Генерация исходных данных
random_numbers = np.random.randint(-10000, 10001, size=1000)
series = pd.Series(random_numbers)
# Преобразование в DataFrame для анализа и очистки
df = pd.DataFrame({'Числа': series})
# Проверка и удаление пустых значений (если бы они были)
print("Количество пропущенных значений:", df['Числа'].isna().sum())
df.dropna(inplace=True)
# Удаление дубликатов
initial_len = len(df)
df.drop_duplicates(inplace=True)
print(f"Удалено дубликатов: {initial_len - len(df)}")
# Убедимся, что все значения в допустимом диапазоне [-10000, 10000]
df = df[(df['Числа'] >= -10000) & (df['Числа'] <= 10000)]
# Сброс индексов после очистки
df.reset_index(drop=True, inplace=True)
print("Результат очистки:\n", df.head())
Рисунок 3 –
В результате очистки были удалены повторяющиеся значения и проверены потенциальные ошибки в данных. Несмотря на то, что цифровой "мусор" не возник при генерации, включение этапа очистки демонстрирует готовность к работе с реальными наборами данных, где наличие ошибок — частое явление. Это повышает надёжность дальнейшего анализа и визуализации.
1.3 Выводы по разделу
Я считаю, что выбор плаформы является неотемлемой частью правильного и компактного кода. Ещё одним важным пунктом является выбор минимального количества нужных библиотек. Основываясь на информации в данном разделе можно сделать следующие выводы (табл.1.2).
Таблица 1.2
Выводы по разделу 1
количественный анализ данных
Получение данных Dataset (данные)
На этапе количественного анализа данных первым шагом является формирование исходного набора чисел — Dataset. В рамках данного задания было принято решение не загружать внешние данные, а сгенерировать их программно. Такой подход позволяет:
полностью контролировать диапазон значений;
исключить влияние некорректных или неструктурированных данных;
смоделировать работу с числовыми массивами, приближенную к анализу реальных числовых признаков.
Для генерации данных использовалась библиотека NumPy, которая позволяет эффективно создавать массивы случайных чисел с заданным количеством и диапазоном. В дальнейшем эти данные были преобразованы в структуру Series библиотеки Pandas для дальнейшего анализа и визуализации.
Требования к набору:
Количество элементов: 1000;
Тип данных: целые числа;
Диапазон значений: от -10000 до 10000.
Листинг 4 – Пример собственного программного кода
import numpy as np
import pandas as pd
# Генерация 1000 случайных целых чисел в диапазоне [-10000, 10000]
random_data = np.random.randint(-10000, 10001, size=1000)
# Создание Series — основной структуры хранения набора данных
series = pd.Series(random_data)
# Вывод первых значений для проверки
print("Первые 10 элементов набора данных:")
print(series.head(10))
Рисунок 4 –
В результате выполнения кода был получен числовой массив из 1000 элементов, представленный в виде объекта Series, который поддерживает эффективное выполнение аналитических и визуальных операций. Набор данных соответствует поставленным условиям и может быть использован для дальнейших расчётов, включая определение минимального и максимального значения, суммы, стандартного отклонения и т.д.
Рассчет стандартных числовых характеристик для набора данных Series
После генерации исходного набора чисел необходимо провести первичный статистический анализ данных, что позволит определить основные числовые характеристики. Это базовый этап анализа, используемый при исследовании любых массивов чисел.
В рамках задания были рассчитаны следующие показатели:
Минимальное значение;
Количество повторяющихся элементов;
Максимальное значение;
Сумма всех значений.
Данные хранятся в структуре pandas.Series, что позволяет применять встроенные методы библиотеки pandas для быстрого и корректного вычисления нужных характеристик.