Отчет по практикеПрограммированиеГод: 2024МУИВ: Московский университет им. С.Ю. Витте
👁 19💼 0

Готовый отчет по практике: анализ случайного набора

Загружена: 20.02.2026 20:57

Анализ сгенерированного набора из 1000 целых чисел (диапазон -10000…10000) с помощью Python. Рассмотрены генерация, очистка (удаление дубликатов, IQR-выбросы), расчёт статистик и построение графиков; полезно для практических заданий и курсовых.

Содержание

Введение	3
1	выбор платформы и данных	5
1.1	Выбор платформы для разработки и необходимых библиотек	5
1.1.1	Обоснование выбора платформы интерпретатора языка Python	5
1.1.2	Выбор библиотек для анализа данных	6
1.2	Получение данных	7
1.2.1	Предварительный анализ данных	7
1.2.2 Выбор формата хранения данных	8
1.2.3 Очистка данных от цифрового мусора	8
1.3 Выводы по разделу	9
2	количественный анализ данных	14
2.1	Получение данных Dataset (данные)	14
2.2	Рассчет стандартных числовых характеристик для набора данных Series	15
2.3	Выводы по разделу	17
3	визуализация результатов количествнного анализа данных	20
3.1	Визуализация наборов данных с помощью стандартных библиотек по заданным критериям	20
2.4 Формирование Dataframe из данных Series и добавление столбцов	21
2.5 Визуализация данных полученные в результате промежуточного анализа	22
3.2	Выводы по разделу	23
Список использованной литературы	27

Введение

Учебная практика (ознакомительная практика) относится к разделу Б2.О.01 блока «Практики» базового учебного плана основной профессиональной образовательной программы по направлению подготовки 09.03.03 «Прикладная информатика» и является видом учебной деятельности, направленной на ознакомление, формирование, закрепление, развитие практических навыков и компетенции в процессе выполнения определенных видов работ, связанных с будущей профессиональной деятельностью. Учебная практика проходила в Московском университете им. С.Ю. Витте (далее - Университете) на кафедре информационных систем
Цель практики
Приобрести начальные профессиональные навыки и практический опыт анализа данных с помощью языка программирования Python; применить, систематизировать и расширить теоретические знания по предметам учебной программы во время прохождения практики в университете.
Задачи практики
Применить теоретические основы как статистики, так и анализа данных на практике, выполнив указанное задание.
Исследование методов, используемых при генерации случайных чисел, и их использование в анализе данных.
Определение целей и задач выполнения анализа сгенерированных данных и структурирование процесса работы.
Обработка и визуализация данных с использованием языка программирования Python совместно с библиотеками Pandas, NumPy и Matplotlib.
Установить и настроить среду разработки PyCharm и установить необходимые библиотеки Python.
Написание и отладка кода Python для генерации данных, вычисления статистических показателей и визуализации результатов.
Анализ сгенерированного набора данных, сбор статистических свойств и визуальных закономерностей.
Выполнение математических операций и статистических расчетов с помощью библиотек Python.
Составление итогового отчета по заданию, включающего описание проведенной работы, полученных результатов и выводов, а также визуализацию данных.
Источниками информации явились открытые информационные базы, информационно-справочные документы, интернет-ресурсы, учебно-методические материалы, размещенные в Электронном Университете, а также информация, представленная на официальном сайте университета в разделе «Сведения об образовательной организации»: https://www.muiv.ru/sveden/.
ОСНОВНАЯ ЧАСТЬ
1 ВЫБОР ПЛАТФОРМЫ И ДАННЫХ
1.1 Выбор платформы разработки и необходимых библиотек
В этом разделе обосновывается выбор платформы разработки и библиотек, используемых для реализации индивидуального задания. Основная цель — обеспечить хорошо функционирующий код  и предоставить необходимые возможности анализа и визуализации данных.
1.1.1 Обоснование выбора платформы интерпретатора языка рython
Python[9][12] был выбран в качестве основного языка программирования для разработки по ряду ключевых пунктов:
Простота и читаемость синтаксиса: рython имеет элегантный, лаконичный синтаксис, что помогает быстро писать и понимать код. Это очень важно в академической практике, где основное внимание уделяется пониманию концепций анализа данных, а не строгости программирования.
Широкий спектр библиотек для анализа данных: рython имеет широкий спектр библиотек, специально предназначенных для анализа данных, а также их обработки и визуализации. поэтому проще реализовать, пройдя через цели, что позволяет сосредоточиться на аналитической составляющей самого проекта.
Большое сообщество и поддержка: python имеет одно из самых активных сообществ разработчиков и пользователей, получающих множество учебных пособий, документации и примеров. Таким образом, будет легко решать проблемы и быстро учиться.
Мультипарадигменность: python поддерживает множество парадигм программирования — объектно-ориентированное, функциональное и процедурное программирование среди прочих. Таким образом, можно принять гибкий подход к использованию методов, наиболее подходящих для конкретного проекта, для решения проблем.
1.1.2 Выбор библиотек для анализа данных
Библиотеки, выбранные для эффективной работы над заданием, следующие: Pandas, NumPy, Matplotlib. Каждая из них обладает своими собственными возможностями, которые вместе составляют полный цикл анализа данных от генерации до визуализации.
Рandas
Библиотека Рandas[2] специально создана для работы с табличными данными. Вот некоторые из основных причин, по которым предпочтение отдано Pandas:
Структуры данных[10]: она предоставляет очень удобные структуры данных, такие как Series и DataFrame, с помощью которых очень легко хранить и обрабатывать данные.
Функциональность: подавляющее большинство функций, включающих фильтрацию, агрегацию, объединение и преобразование данных, делают Pandas незаменимым инструментом предварительной обработки.
Производительность: оптимизированные алгоритмы для обработки больших объемов данных обеспечивают невероятную скорость.
Интеграция: Рandas обеспечивает бесшовную интеграцию с другими библиотеками Рython, такими как NumPy и Matрlotlib и другими. Это обеспечивает бесшовную обработку данных для анализа и визуализации.
NumРy
NumРy[2] — это фундаментальная библиотека для научных вычислений на Python. Выбор NumРy стал возможным по следующим причинам:
Массивы и матрицы: NumРy предоставляет мощную структуру для многомерных массивов и матриц; это строительные блоки числовых вычислений.
Скорость: Векторизованные операции в NumPy значительно быстрее, чем сопоставимые традиционные циклические конструкции в Python по электрической скорости для математических вычислений.
Функции: Библиотека облегчает сложные вычисления благодаря большому количеству математических функций и инструментов для линейной алгебры, статистики и ряда других областей науки.
Совместимость: NumPy является основой многих других библиотек Python, из-за чего использование NymPy невероятно эффективно.
Matplotlib[5][6].
Matplotlib, это еще одна библиотека, которая в первую очередь фокусируется на визуализации данных в виде статического графика в Python. Причины использования Matplotlib включают:
Гибкость: Matplotlib предлагает богатый набор диаграмм или графиков, от простых линейных графиков до сложных 3D-визуализаций.
Настраиваемость: высокий уровень контроля над их элементами, цветами, метками и легендами может позволить создавать такие красивые визуальные эффекты.
Интеграция с Pandas и NumPy: эта функция позволяет Matplotlib легко взаимодействовать с данными из любых массивов Pandas Dataframe и NumPy, находящихся в эксплуатации, что делает визуализацию обработанных данных легкой.
Сообщество и документация: у данной библиоткеи  очень обширная документация, а также активное сообщество; следовательно, существует очень большая поддержка и многочисленные примеры для реализации различных типов визуальных эффектов.
Получение данных
Предварительный анализ данных
В ходе выполнения индивидуальной работы под названием  был выполнен анализ синтетического набора данных, созданного с 1000 случайных целых чисел в диапазоне от отрицательных до положительных в 10000. Основной целью анализа было вычисление некоторых ключевых статистических параметров и их последующая визуализация для понимания распределения данных и их закономерностей.
На первом этапе библиотека NumPy использовалась для случайной генерации целого числа. Функция numpy.random.randint создавала массив из 1000 целых чисел в определенном диапазоне. Впоследствии с помощью Pandas сгенерированные данные были преобразованы в объект Series, чтобы упростить работу с данными и получить доступ к встроенным методам анализа.
import numpy as np
import pandas as pd
# Генерация 1000 случайных целых чисел от -10000 до 10000
np.random.seed(42)
data = np.random.randint(-10000, 10001, 1000)
s = pd.Series(data)
1.2.2 Выбор формата хранения данных
Решение задачи потребовало хранения полученных случайных данных соответствующего формата.Таким образом, выбор правильного формата хранения данных очень важен для обеспечения эффективности обработки, анализа и надлежащей визуализации этой информации в будущем.
Было принято решение сохранять сгенерированные числовые данные в формате CSV (значения, разделенные запятыми). Основные преимущества выбора формата CSV[4]:
Читаемость: информация в формате CSV может быть прочитана и изменена любым текстовым редактором.
Простая интеграция: файлы CSV можно легко интегрировать в рабочие процессы анализа данных, что позволяет загружать и сохранять записи без сложных преобразований.
s.to_csv('data_series.csv', index=False, encoding='utf-8')
print("Данные успешно сохранены в файл 'data_series.csv'.")[4]
1.2.3 Очистка данных от цифрового мусора
Очистка данных от цифрового мусора представляет собой значительную предварительную обработку, направленную на повышение качества и надежности будущих результатов анализа. В рамках задания под цифровым мусором подразумеваются:
Дубликаты: это относится к таким повторяющимся значениям, которые имеют тенденцию искажать аналитическую статистику.
Точки выброса данных: чрезвычайно большие или малые числа, которые не вписываются в общее распределение данных.
Недопустимые данные: значения, выходящие за пределы соответствия предписанному диапазону вместе с ожидаемым типом.
Учитывая текущий анализируемый набор данных из 1000 случайно выбранных целых чисел в диапазоне от -10000 до 10000, наличие любого значимого выброса очень мало из-за равномерного распределения. Но возможность и частичное рассмотрение дубликатов уже были сделаны в разделе 1.2.1. Процесс очистки продемонстрирует обработку дубликатов и проверку аномалий в данных.
outliers = s_unique[(s_unique < lower_bound) | (s_unique > upper_bound)]
outlier_count = outliers.size
print(f"Количество аномальных значений: {outlier_count}")
s_cleaned = s_unique[(s_unique >= lower_bound) & (s_unique <= upper_bound)]
print(f"Размер набора данных после удаления аномальных значений: {s_cleaned.size}")
1.3 Выводы по разделу
Я считаю, что выбор плаформы является неотемлемой частью правильного и компактного кода. Ещё одним важным пунктом является выбор минимального количества нужных библиотек. Основываясь на информации в данном разделе можно сделать следующие выводы (табл.1.2).
Таблица 1.2
Выводы по разделу 1
количественный анализ данных
Получение данных Dataset (данные)
Чтобы проанализировать данные с помощью библиотеки Pandas, сначала необходимо получить и загрузить набор данных. Для индивидуального задания данные были сгенерированы с помощью библиотеки NumPy и сохранены в формате CSV для будущего использования. Ниже приведены шаги по получению и загрузке данных в среду анализа.
Рассчет стандартных числовых характеристик для набора данных Series[7]
В этом подразделе представлена ​​попытка расчета основных статистических характеристик набора данных — попытка, то есть предоставление минимума и максимума, суммы всех чисел, а также стандартного отклонения и количества повторений относительно значений. Крайне необходимый обзор для получения представления о распределении и его вариации может быть получен из этих характеристик.
2.2.1 Минимальное значение[3]:
Минимальное значение в наборе данных определяет наименьшее число, которое можно найти в данных.
minimum_value = s.min()
print(f"Минимальное значение: {minimum_value}")
2.2.2 Подсчет количества повторяющихся элементов[3]:
Подсчет количества повторяющихся значений позволяет измерить, насколько данные уникальны, и найти возможные дубликаты, которые влияют на статистические показатели, определяя количество повторений значений в данных.
duplicate_count = s.duplicated(keep=False).sum()
print(f"Количество повторяющихся значений: {duplicate_count}")
2.2.3. Максимальное значение[3]:
Максимальное значение в наборе данных определяет наибольшее число, присутствующее в данных.
maximum_value = s.max()
print(f"Максимальное значение: {maximum_value}")
2.2.4. Сумма значений[3]:
Сумма всех чисел в наборе данных дает представление об общем объеме данных и может быть полезна для будущих расчетов и сравнений.
sum_value = s.sum()
print(f"Сумма всех значений: {sum_value}")
Выводы по разделу
Количественный анализ данных это неотъемлемая часть прохождения данной практики. Очень важно визуализировать, делать расчёты и выполнять другие преобразования информации при анализе данных. Основываясь на информации в данном разделе можно сделать следующие выводы (табл.2.1):
Таблица 2.1
Выводы по разделу 2
визуализация результатов количествнного анализа данных
Визуализация наборов данных с помощью стандартных библиотек по заданным критериям
Визуализация данных играет важную роль в анализе, позволяя визуализировать информацию, позволяя искать тенденции и закономерности и упрощая интерпретацию результатов. Стандартные библиотеки Python, такие как Matplotlib и Pandas, используются для индивидуального задания, предлагая довольно полный набор инструментов для построения графиков и диаграмм всех видов.
Линейный график
Линейный график — это графическое представление, в котором изменения значений данных определяются в соответствии с их индексом. Это показывает общие тенденции и нормальные колебания, а также возможные закономерности, по которым такие наборы данных могут обрабатываться. Для этой задачи был подготовлен линейный график, изображающий последовательность сгенерированных случайных чисел[7].
Рисунок 1. Линейный график
plt.figure(figsize=(10, 5))
plt.plot(s.index, s.values, label='Исходные данные', color='blue')
plt.title("Линейный график случайных данных")
plt.xlabel("Индекс")
plt.ylabel("Значение")
plt.legend()
plt.grid(True)
plt.show()
Гистограмма
Гистограмма представляет распределение данных, собранных в определенных диапазонах (ячейках). Для этой задачи гистограмма была создана с использованием округления значений до ближайшей сотни, чтобы сделать ее более понятной и информативной[7].
Рисунок 2. Гистограмма.
s_rounded = s.apply(lambda x: round(x, -2))
bins = range(-10000, 10001, 100)
plt.figure(figsize=(10, 5))
plt.hist(s_rounded, bins=bins, edgecolor='black', color='green')
plt.title("Гистограмма (значения, округлённые до сотен)")
plt.xlabel("Значение (округлённое до сотен)")
plt.ylabel("Частота")
plt.grid(True)
plt.show()
3.2 Формирование Dataframe из данных Series и добавление столбцов
Создание DataFrame из данных Series и добавление дополнительных столбцов станет важным шагом в подготовке данных для дальнейшего сложного анализа. Организованный в строки и столбцы, DataFrame предоставляет структурированную таблицу, над которой могут выполняться различные операции, такие как фильтрация, агрегация и визуализация.
import pandas as pd
s = pd.Series(data, name='Числа')
df = pd.DataFrame(s)
Сначала Series следует преобразовать в DataFrame, что можно сделать с помощью pd.DataFrame(), указав имя столбца для данных.
Добавление столбцов, содержащих отсортированные значения
После получения исходного DataFrame можно добавить больше столбцов, содержащих отсортированные данные, и сравнить различные порядки сортировки и, следовательно, их влияние на распределение данных.
sorted_asc = s.sort_values(ascending=True)
sorted_desc = s.sort_values(ascending=False)
df['По возрастанию'] = sorted_asc.values
df['По убыванию'] = sorted_desc.values
Экспорт DataFrame в файл
Данные также могут быть экспортированы в массовом или микромасштабе в виде файла для дальнейшей общей эксплуатации и анализа в нескольких форматах, включая CSV или Excel, что упрощает передачу данных другому пользователю или использование их в других приложениях.
# Сохранение DataFrame в файл CSV
df.to_csv('dataframe_sorted.csv', index=False, encoding='utf-8')
print("\nDataFrame успешно сохранен в файл 'dataframe_sorted.csv'.")
3.3 Визуализация данных полученные в результате промежуточного анализа
Визуализация данных, собранных в ходе промежуточного анализа, является важным шагом в понимании их распределения, выявлении тенденций и аномалий, а также предоставлении результатов в графическом виде. Здесь описываются методы визуализации данных, которые должны были использоваться в ходе анализа с использованием стандартных библиотек Python, таких как Matplotlib и Pandas.
Визуализация упорядоченных данных
После формирования DataFrame[1] с упорядоченными столбцами целесообразно визуализировать данные, чтобы сравнить их распределение и определить характеристики.
Упорядоченный линейный график данных
Линейный график упорядоченных данных в порядке возрастания и убывания показывает плавные переходы значений и сравнивает эти тенденции.
plt.figure(figsize=(12, 6))
plt.plot(df['По возрастанию'], label='По возрастанию', color='blue')
plt.plot(df['По убыванию'], label='По убыванию', color='red')
plt.title("Сравнение отсортированных данных по возрастанию и убыванию")
plt.xlabel("Индекс")
plt.ylabel("Значение")
plt.legend()
plt.grid(True)
plt.show()
Гистограмма отсортированных данных
Гистограмма отсортированных данных поясняет[11] распределение значений в процессе сортировки, что может быть полезно при анализе различий в плотности значений в разных диапазонах.
df['По возрастанию_округлённые'] = df['По возрастанию'].apply(lambda x: round(x, -2))
df['По убыванию_округлённые'] = df['По убыванию'].apply(lambda x: round(x, -2))
bins = range(-10000, 10001, 100)
plt.figure(figsize=(12, 6))
plt.hist(df['По возрастанию_округлённые'], bins=bins, alpha=0.5, label='По возрастанию', color='blue', edgecolor='black')
plt.hist(df['По убыванию_округлённые'], bins=bins, alpha=0.5, label='По убыванию', color='red', edgecolor='black')
plt.title("Гистограммы отсортированных данных по возрастанию и убыванию")
plt.xlabel("Значение (округлённое до сотен)")
plt.ylabel("Частота")
plt.legend()
plt.grid(True)
plt.show()
Выводы по разделу
Выводы по разделу представлены в таблице 3.1:
Таблица 3.1

Заключение

В ходе выполнения практики я:
– Научилась закреплять приобретенные теоретические знания в области анализа данных.
– Приобрела навыки научного поиска и практической работы с информационными источниками данных.
– Овладела практическими методиками формирования цели и задач для работы над проектом, а также управления познавательной деятельностью.
– Приобрела практические навыки участия в командной работе, распределения ролей и взаимодействия в условиях коллективного проекта.
– Приобрела практические навыки использования иностранного языка при анализе зарубежных интернет источников.
– Приобрела навыки использования современных информационных технологий и программных средств для решения задач анализа данных.
– Получила навыки проведения инженерных расчетов, связанных с анализом и визуализацией данных.
Список использованной литературы
Brownlee, J. Machine Learning Mastery with Python: Understand Your Data, Create Accurate Models, and Work Projects End-to-End / J. Brownlee: Machine Learning Mastery, 2018.
McKinney, W. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython / W. McKinney: O'Reilly Media, 2017.
Sweigart, A. Automate the Boring Stuff with Python: Practical Programming for Total Beginners / A. Sweigart: No Starch Press, 2015.
Idris, I. NumPy Beginner's Guide / I. Idris: Packt Publishing, 2015.
Petrou, T. Pandas Cookbook: Recipes for Scientific Computing, Time Series Analysis and Data Visualization using Python / T. Petrou: Packt Publishing, 2017.
Tosi, S. Matplotlib for Python Developers / S. Tosi: Packt Publishing, 2016.
Hunter, J. D. Matplotlib: A 2D Graphics Environment / J. D. Hunter: Computing in Science & Engineering, 2007.
Oliphant, T. E. Python for Scientific Computing / T. E. Oliphant: Apress, 2007.
Van Rossum, G., & Drake, F. L. Python Reference Manual / G. Van Rossum, F. L. Drake: CreateSpace, 2009.
Wes McKinney. pandas: powerful Python data analysis toolkit / W. McKinney: O'Reilly Media, 2012.
Geron, A. Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems / A. Geron: O'Reilly Media, 2019.
Lutz, M. Learning Python / M. Lutz: O'Reilly Media, 2013.
Приложение
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
np.random.seed(42)
random_data = np.random.randint(-10000, 10001, size=1000)
data_series = pd.Series(random_data, name='Числа')
data_series.to_csv('data_series.csv', index=False, encoding='utf-8')
print("Данные успешно сохранены в файл 'data_series.csv'.")
min_val = data_series.min()
print(f"Минимальное значение: {min_val}")
duplicate_count = data_series.duplicated(keep=False).sum()
print(f"Количество повторяющихся значений: {duplicate_count}")
max_val = data_series.max()
print(f"Максимальное значение: {max_val}")
total_sum = data_series.sum()
print(f"Сумма всех значений: {total_sum}")
mean_val = data_series.mean()
std_dev = data_series.std()
print(f"Среднее значение: {mean_val}")
print(f"Стандартное отклонение: {std_dev}")
Q1 = data_series.quantile(0.25)
Q3 = data_series.quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
outliers = data_series[(data_series < lower_bound) | (data_series > upper_bound)]
outlier_count = outliers.size
print(f"Количество аномальных значений: {outlier_count}")
s_unique = data_series.drop_duplicates()
s_cleaned = s_unique[(s_unique >= lower_bound) & (s_unique <= upper_bound)]
print(f"Размер набора данных после удаления аномальных значений и дубликатов: {s_cleaned.size}")
plt.figure(figsize=(10, 5))
plt.plot(data_series.index, data_series.values, label='Исходные данные', color='blue')
plt.title("Линейный график случайных данных")
plt.xlabel("Индекс")
plt.ylabel("Значение")
plt.legend()
plt.grid(True)
plt.savefig('linear_plot.png')
plt.show()
s_rounded = data_series.apply(lambda x: round(x, -2))
bins = range(-10000, 10001, 100)
plt.figure(figsize=(10, 5))
plt.hist(s_rounded, bins=bins, edgecolor='black', color='green')
plt.title("Гистограмма (значения, округленные до сотен)")
plt.xlabel("Значение (округленное до сотен)")
plt.ylabel("Частота")
plt.grid(True)
plt.savefig('histogram.png')
plt.show()
df = pd.DataFrame(data_series)
df['По возрастанию'] = data_series.sort_values(ascending=True).values
df['По убыванию'] = data_series.sort_values(ascending=False).values
df.to_csv('dataframe_sorted.csv', index=False, encoding='utf-8')
print("DataFrame успешно сохранен в файл 'dataframe_sorted.csv'.")
plt.figure(figsize=(12, 6))
plt.plot(df['По возрастанию'], label='По возрастанию', color='blue')
plt.plot(df['По убыванию'], label='По убыванию', color='red')
plt.title("Сравнение отсортированных данных по возрастанию и убыванию")
plt.xlabel("Индекс")
plt.ylabel("Значение")
plt.legend()
plt.grid(True)
plt.savefig('sorted_linear_plot.png')
plt.show()
df['По возрастанию_округлённые'] = df['По возрастанию'].apply(lambda x: round(x, -2))
df['По убыванию_округлённые'] = df['По убыванию'].apply(lambda x: round(x, -2))
bins_sorted = range(-10000, 10001, 100)
plt.figure(figsize=(12, 6))
plt.hist(df['По возрастанию_округлённые'], bins=bins_sorted, alpha=0.5, label='По возрастанию', color='blue', edgecolor='black')
plt.hist(df['По убыванию_округлённые'], bins=bins_sorted, alpha=0.5, label='По убыванию', color='red', edgecolor='black')
plt.title("Гистограммы отсортированных данных по возрастанию и убыванию")
plt.xlabel("Значение (округленное до сотен)")
plt.ylabel("Частота")
plt.legend()
plt.grid(True)
plt.savefig('sorted_histogram.png')
plt.show()
print("\nАнализ данных завершен. Все графики сохранены в текущей директории.")

Подробное описание

📘 О чем эта работа

Отчет посвящён обработке и визуализации синтетического набора чисел: объект исследования — Series/DataFrame, предмет — методы генерации, очистки и визуализации одномерного числового ряда, полученного с помощью NumPy (np.random.randint) и преобразованного средствами Pandas.

📚 Что внутри

В работе подробно описаны практические шаги и приведён исполняемый код:

  • Генерация 1000 целых чисел в диапазоне -10000…10000 с фиксированным seed (np.random.seed(42)) и сохранение в 'data_series.csv' и 'data_series.csv'.
  • Предварительный анализ: подсчёт min, max, суммы, среднего, стандартного отклонения, количества повторов (duplicated) и квантилей (Q1, Q3), вычисление IQR и границ для выявления выбросов.
  • Очистка: удаление дубликатов, фильтрация значений вне границ IQR и подсчёт размера очищенного набора.
  • Формирование DataFrame из Series, добавление колонок 'По возрастанию' и 'По убыванию', создание округлённых столбцов для построения гистограмм.
  • Визуализация: линейный график исходной последовательности (linear_plot.png), гистограмма по сотням (histogram.png), сравнение отсортированных рядов (sorted_linear_plot.png) и гистограммы для отсортированных столбцов (sorted_histogram.png).
  • Экспорт результатов: CSV-файлы ('data_series.csv', 'dataframe_sorted.csv') и PNG-графики, готовые для отчёта.

📊 Для кого подходит

Материал полезен студентам прикладной информатики и программирования, преподавателям при демонстрации работы с Pandas/NumPy/Matplotlib, а также всем, кто осваивает методы предварительной обработки одномерных рядов и базовой визуализации.

✨ Особенности

В отчёте собраны конкретные рабочие фрагменты кода и сохранённые результаты: детальные вычисления статистик (mean, std, quantile, IQR), пример реализации очистки от дубликатов и выбросов, а также готовые скрипты для построения графиков и сохранения изображений. Проект ориентирован на быстрое воспроизведение и адаптацию под учебные задания (использование PyCharm и стандартных библиотек).

❓ Частые вопросы

Подойдет ли для моего ВУЗа?
Структура соответствует требованиям отчёта по ознакомительной практике: введение, цель, задачи, описание среды, результаты, выводы и список литературы.

Можно адаптировать?
Код и экспортируемые файлы легко модифицировать: изменить диапазон генерации, метод округления для гистограмм, сохранить результаты в Excel или добавить дополнительные статистики.