Язык Python в медицинских системах искусственного интеллекта. Ч.1. Введение в программирование на языке Python. Учебное пособие
.pdf
Рис. 4.8.8 – Линейный график с настройкой осей
10. сетка и аннотации
●plt.grid(True) — включение сетки.
●plt.annotate("Text", xy=(x, y), xytext=(x_text, y_text), arrowprops=dict(facecolor='black', shrink=0.05)) — добавление аннотации на график.
Пример и результат работы программы рис. 4.8.9: x = [1, 2, 3, 4]
y = [10, 20, 25, 30] plt.plot(x, y)
plt.annotate("Max Value", xy=(4, 30), xytext=(3, 20), arrowprops=dict(facecolor='black', shrink=0.05)) plt.grid(True)
plt.show()
81
Рис. 4.8.9 – Линейный график с нанесёнными сеткой и аннотацией
11. работа с подграфиками (Subplots)
●plt.subplot(nrows, ncols, index) — создание сетки подгра-
фиков:
○nrows, ncols — количество строк и столбцов.
○index — позиция подграфика (считается слева направо). Пример и результат работы программы рис. 4.8.10:
plt.subplot(1, 2, 1) plt.plot([1, 2, 3], [1, 4, 9]) plt.title("Graph 1")
plt.subplot(1, 2, 2) plt.plot([1, 2, 3], [1, 2, 3]) plt.title("Graph 2")
plt.tight_layout() plt.show()
82
Рис. 4.8.10 – Демонстрация подграфиков
4.9.Практика
4.9.1.Теоретические вопросы
1.Чем отличаются библиотеки os и sys? Как они используются для работы с операционной системой и системными параметрами?
2.В чем разница между использованием функций библиотеки random для генерации случайных чисел с фиксированным началом и без него?
3.Как можно манипулировать временем и датой с помощью библиотеки datetime? Приведите примеры.
4.Чем полезна библиотека numpy при работе с большими массивами данных? Как она оптимизирует вычисления?
5.Объясните основные операции с массивами в numpy. Каковы преимущества использования массивов numpy по сравнению с обычными списками Python?
6.В чем заключается цель использования библиотеки Math в Python, и какие математические операции она предоставляет?
83
7.Что такое pandas DataFrame и как его использовать для обработки табличных данных?
8.В чем особенность использования Matplotlib для визуализации данных в Python? Какие основные типы графиков можно построить с помощью этой библиотеки?
9.Как использовать os для взаимодействия с файловой системой, например, для создания и удаления директорий или файлов?
10.Что такое системные переменные в Python и как их использовать с помощью библиотеки sys?
11.Чем отличается функция random.choice() от random.randint()?
12.Как форматировать вывод даты и времени с помощью datetime?
13.Как numpy решает задачи многомерных массивов и линейной алгебры?
14.В чем разница между pandas Series и DataFrame?
15.Какие основные параметры нужно передавать в Matplotlib для создания различных типов графиков?
4.9.2.Библиотека OS
1.Напишите скрипт, который создает новую директорию с именем
"example_dir".
2.Напишите программу, которая проверяет, существует ли файл с именем "test.txt", и если нет — создает его.
3.Реализуйте функцию,которая удаляет всефайлы вуказаннойдиректории.
4.Напишите скрипт, который выводит все файлы в текущей директории, отсортированные по дате последнего изменения.
5.Создайте программу, которая копирует файл из одной директории в другую с помощью библиотеки os.
6.Напишите функцию, которая находит размер папки (включая все файлы и подкаталоги).
7.Напишите программу, которая переименовывает файл, если его имя содержит пробелы (заменяет пробелы на подчеркивания).
8.Реализуйтескрипт, который рекурсивноудаляет все файлы с расширением ".log" в заданной директории.
9.Напишите программу, которая меняет рабочую директорию на заданную и выводит ее содержимое.
84
10.Реализуйте функцию, которая создает архив .zip из всех файлов в текущей директории.
4.9.3.Библиотека SYS
1.Напишите программу, которая выводит аргументы командной строки.
2.Реализуйте функцию, которая определяет, сколько строк в текущем скрипте.
3.Напишите программу, которая завершает выполнение скрипта с заданным кодом выхода.
4.Напишите скрипт, который изменяет системный путь поиска моду-
лей в Python.
5.Реализуйте программу, которая использует sys.argv для обработки входных данных и запускает разные функции в зависимости от введенного параметра.
6.Напишите функцию, которая ловит исключение и выводит его тип с помощью sys.exc_info().
7.Реализуйте программу, которая позволяет пользователю ввести имя файла и выводит его содержимое на экран.
8.Напишите скрипт, который записывает текст в стандартный поток ошибок.
9.Реализуйте программу, которая ловит и обрабатывает ошибки, используя sys и исключения.
10.Напишите программу, которая перехватывает сигнал завершения и выполняет заданную операцию перед выходом.
4.9.4.Библиотека Random
1.Напишите программу, которая генерирует случайное число от 1 до
2.Напишите программу, которая генерирует случайный выбор из списка чисел.
3.Реализуйте функцию, которая случайным образом выбирает строку из списка.
4.Напишите программу, которая генерирует случайное парное число
вдиапазоне от 0 до 100.
5.Напишитепрограмму,котораягенерирует 10 случайных чисел и выводит их в порядке возрастания.
85
6.Реализуйте функцию, которая генерирует случайную строку длиной 8 символов, состоящую из букв и цифр.
7.Напишитепрограмму,котораягенерируетслучайныйсписокчисел
инаходит их сумму.
8.Напишите программу, которая генерирует случайный пароль (из букв, цифр и символов).
9.Реализуйте программу, которая генерирует случайную последовательность чисел и сортирует их с использованием библиотеки random.
10.Напишите программу, которая генерирует случайные значения для игры в "крестики-нолики" (определение победителя, случайный ход).
4.9.5.Библиотека Datetime
1.Напишите программу, которая выводит текущую дату и время.
2.Реализуйте функцию, которая выводит дату через 5 дней от сегодняшней.
3.Напишите программу, которая находит разницу между двумя датами.
4.Напишите скрипт, который выводит день недели для заданной даты.
5.Реализуйте программу, которая находит количество дней до следующего Нового года.
6.Напишитепрограмму,котораяпринимаетдатувстроковомформате
ипреобразует ее в объект datetime.
7.Напишите программу, которая форматирует текущую дату в формат "День-месяц-год".
8.Реализуйте скрипт, который выводит количество дней в текущем месяце.
9.Напишите программу, которая вычисляет количество секунд, прошедших с начала года.
10.Реализуйте программу, которая генерирует временные метки для файлов и добавляет их в их имена.
4.9.6.Библиотека Numpy
1.Напишите программу, которая создает массив из 10 случайных чи-
сел.
2.Реализуйте функцию, которая вычисляет среднее значение массива.
3.Напишите программу, которая создает массив из чисел от 1 до 10 и находит сумму этих чисел.
86
4.Реализуйте программу, которая создает двумерный массив и находит его транспонированную версию.
5.Напишите программу, которая генерирует случайный массив и находит максимальное значение в нем.
6.Реализуйте программу, которая генерирует массив и вычисляет стандартное отклонение этих чисел.
7.Напишите программу, которая создает массив из случайных чисел и сортирует его.
8.Реализуйте программу, которая находит индекс минимального значения в массиве.
9.Напишите программу, которая генерирует два массива и находит их поэлементное произведение.
10.Реализуйте программу, которая вычисляет собственные значения матрицы с помощью библиотеки numpy.
4.9.7.Библиотека Math
1.Напишите программу, которая вычисляет квадратный корень из числа.
2.Реализуйте программу, которая округляет число до двух знаков после запятой.
3.Напишите программу, которая вычисляет факториал числа.
4.Реализуйте программу, которая находит наибольший общий делитель двух чисел.
5.Напишите программу, которая использует функции библиотеки math для преобразования углов в радианы и обратно.
6.Напишите программу, которая находит степень числа с помощью функции math.pow().
7.Реализуйте программу, которая находит значение синуса и косинуса для заданного угла.
8.Напишите программу, которая вычисляет логарифм числа по основанию 10.
9.Реализуйте программу, которая генерирует случайное число и округляет его с помощью math.ceil().
10.Напишите программу, которая вычисляет гипотенузу прямоугольного треугольника, используя теорему Пифагора.
87
4.9.8.Библиотека Pandas
1.Напишитепрограмму,котораясоздаетpandasSeriesизспискачисел.
2.Реализуйте программу, которая загружает CSV файл в pandas DataFrame.
3.Напишите программу, которая выводит первые 5 строк DataFrame.
4.Напишите скрипт, который сортирует DataFrame по столбцу.
5.Реализуйте программу, которая удаляет строки с пропущенными значениями в DataFrame.
6.Напишитепрограмму,котораянаходитсреднеезначениепостолбцу
DataFrame.
7.Реализуйте программу, которая фильтрует строки в DataFrame по условию.
8.Напишите программу, которая добавляет новый столбец в
DataFrame.
9.Реализуйте программу, которая группирует данные в DataFrame по определенному столбцу.
10.Напишите программу, которая сохраняет измененный DataFrame в новый CSV файл.
4.9.9.Библиотека Matplotlib
1.Напишите программу, которая строит линейный график.
2.Реализуйте программу, которая строит график для данных в виде списка.
3.Напишите программу, которая строит гистограмму для набора данных.
4.Напишите программу, которая строит круговую диаграмму.
5.Реализуйте программу, которая строит график функции sin(x).
6.Напишите программу, которая добавляет заголовок и подписи к осям графика.
7.Реализуйте программу, которая строит несколько графиков в одном окне.
8.Напишитепрограмму,котораяизменяетцветграфикавзависимости от данных.
9.Напишите программу, которая строит график с несколькими подграфиками.
88
10. Реализуйте программу, которая строит трехмерный график с помо-
щью Matplotlib.
Выполнение этих заданий поможет вам углубить понимание продвинутых концепций Python и развить навыки программирования. Рекомендуется решить как можно больше практических задач и проанализировать решения, чтобы лучше усвоить материал раздела.
89
СПИСОК ЛИТЕРАТУРЫ
1.Аллен,Б.PythonBeyondBasics/БрэдАллен.—Springer,2020. —
510 с.
2.Бейдер, Д. Python Tricks: The Book / Дэн Бейдер. — Real Python, 2017. — 301 с.
3.Бисли, Д., Джонс, Б. Python Cookbook / Дэвид Бисли, Брайан Джонс. — O'Reilly Media, 2013. — 706 с.
4.Ван Хаттем, Р. Mastering Python / Рик Ван Хаттем. — Packt Publishing, 2016. — 486 с.
5.Грасс, Дж. Data Science from Scratch / Джоэл Грасс. — O'Reilly Media, 2019. — 460 с.
6.Доусон, М. Программирование на Python для начинающих / Майкл Доусон. — Диалектика, 2018. — 432 с.
7.Кеннеди,М.PythonConcurrencywithasyncio/МайклКеннеди. — Talk Python Training, 2022. — 430 с.
8.Кеннан, Д. Python Programming: An Introduction to Computer Science / Джон Кеннан. — Franklin, Beedle & Associates Inc., 2016. — 552 с.
9.Лутц, М. Программирование на Python / Марк Лутц. — М.: Ви-
льямс, 2018. — 1600 с.
10.Мак-Кинни, В. Python for Data Analysis / Вес Мак-Кинни. — O'Reilly Media, 2017. — 550 с.
11.Мак-Клафф, К. Python Data Science Handbook / Джейк Ван дер Плас. — O'Reilly Media, 2016. — 548 с.
12.Матес, Э. Python Crash Course / Эрик Матес. — No Starch Press, 2019. — 560 с.
13.Миллер, Г. Введение в анализ данных с Python / Гретчен Мил-
лер. — Питер, 2020. — 416 с.
14.Рамальо, Л. Fluent Python / Лучиано Рамальо. — O'Reilly Media, 2015. — 792 с.
15.Рашка, С., Мирджалили, В. Python Machine Learning / Себастьян Рашка, Вахид Мирджалили. — Packt Publishing, 2019. — 770 с.
16.Свейгарт, А. Automate the Boring Stuff with Python / Аль Свейгарт. — No Starch Press, 2019. — 592 с.
17.Слаткин, Б. Effective Python: 90 Specific Ways to Write Better Python / Бретт Слаткин. — Addison-Wesley, 2020. — 480 с.
90
