Язык Python в медицинских системах искусственного интеллекта. Ч.1. Введение в программирование на языке Python. Учебное пособие
.pdfPython стал одним из самых популярных языков программирования в мире. Его используют в веб-разработке, науке о данных, искусственном интеллекте, автоматизации, обучении и многих других областях. Ключевые причины популярно-
сти Python:
•простота и читаемость кода: Синтаксис Python интуитивно понятен, что облегчает изучение языка новичками.
•большое сообщество и экосистема: Существует множество библиотек и фреймворков, которые расширяют функциональность Python.
•мультиплатформенность: Python работает на большинстве современных операционных систем.
Вклад Гвидо ван Россума
Гвидо ван Россум долгое время был бессменным лидером проекта Python и носил неофициальный титул “Великодушного пожизненного диктатора”
(Benevolent Dictator for Life, BDFL). В 2018 году он отошел от руководства проек-
том, передав обязанности руководящему совету.
1.4.2. Особенности языка:
Простота и читаемость синтаксиса: Использование отступов для определения блоков кода.
Динамическая типизация: Типы переменных определяются во время выполнения программы.
Интерпретируемость: Код выполняется без предварительной компиляции.
Высокоуровневые встроенные структуры данных: Списки, словари, множества.
Преимущества Python:
●быстрое прототипирование и разработка.
●кроссплатформенность: работает на Windows, macOS, Linux.
●обширная стандартная библиотека и множество сторонних пакетов.
●активное сообщество и большое количество учебных ресур-
сов. Сферы применения:
● веб-разработка: Django, Flask.
11
●научные вычисления и анализ данных: NumPy, SciPy, pandas.
●машинное обучение и искусственный интеллект: TensorFlow, PyTorch.
●автоматизация и скрипты.
●обработка изображений и компьютерное зрение: OpenCV, Pillow.
1.5.Обработка изображений в современной науке
1.5.1. Роль обработки изображений в современной науке
Диагностические методы:
● магнитно-резонансная томография (МРТ):
o используется для получения подробных изображений внутренних органов.
oобработка изображений помогает в выявлении опухолей, повреждений тканей.
●компьютерная томография (КТ):
oпозволяет получать послойные изображения тела.
oприменяется для диагностики травм, заболеваний органов.
●ультразвуковые исследования:
oиспользование звуковых волн для визуализации внутренних структур.
oбезопасный метод для наблюдения за развитием плода. Автоматический анализ изображений:
●выделение патологий:
oиспользование алгоритмов для обнаружения аномалий.
oпомощь врачам в ранней диагностике заболеваний.
●классификация тканей:
oопределение типов тканей по их характеристикам на изображении.
oважна для планирования хирургических вмешательств.
●трехмерная реконструкция органов:
oсоздание 3D-моделей на основе серии 2D-снимков.
oулучшает понимание сложных анатомических структур. Телемедицина:
12
● удаленная диагностика:
oпередача изображений дляконсультации специалистовв других регионах.
oулучшение доступности медицинской помощи.
●обмен медицинскими изображениями:
oстандартизация форматов (например, DICOM) для совместимости между системами.
oОблегчает совместную работу и исследования.
1.5.2. Применение в технических науках
Машиностроение и материаловедение: ● дефектоскопия:
oобнаружение трещин, пустот и других дефектов в материалах.
oиспользование методов неразрушающего контроля.
●анализ микроструктуры материалов:
oизучение структуры металлов, сплавов и композитов.
oпомогает в улучшении свойств материалов. Робототехника и компьютерное зрение:
●навигация и ориентация в пространстве:
oиспользование камер для определения положения робота.
oпостроение карт местности и препятствий.
●распознавание объектов и препятствий:
oидентификация и классификация объектов в окружении.
oобеспечение безопасного взаимодействия с окружающей средой.
Аэро- и космические исследования: ● анализ спутниковых снимков:
oмониторинг земной поверхности, погодных условий.
oприменяется в метеорологии, географии, экологии.
●мониторинг окружающей среды:
oотслеживание изменений в экосистемах.
oобнаружение загрязнений и стихийных бедствий.
13
1.6. Обзорпопулярныхбиблиотекдляобработкиизображений
Python
1.6.1. Pillow
Основные возможности:
●открытие и сохранение изображений различных форматов.
●преобразования: изменение размера, поворот, обрезка.
●применение фильтров и эффектов.
Поддержка форматов:
● JPEG, PNG, BMP, GIF, TIFF и другие.
1.6.2. OpenCV
Широкий функционал:
●обработка изображений и видео.
●компьютерное зрение: обнаружение объектов, распознавание лиц.
Поддержка видео и реального времени:
●захват видео с камер.
●обработка потокового видео.
Интеграция с библиотеками машинного обучения:
● возможность использования с TensorFlow, PyTorch.
1.6.3. Matplotlib и SciPy:
Визуализация данных:
●построение графиков, диаграмм.
●отображение изображений. Аналитические возможности:
●обработка сигналов.
●применение математических функций и статистических методов.
14
2. PYTHON БАЗОВЫЕ ЗНАНИЯ
Цели изучения:
●изучить синтаксис и базовые конструкции языка python.
●научиться работать с основными типами данных и операторами.
●освоить принципы структурированного программирования. Ожидаемые навыки:
●умение писать простые программы на python.
●понимание работы с переменными, типами данных и операторами.
●навыки использования условных конструкций и циклов.
2.1.Переменные и типы данных
2.1.1. Переменные и присваивание
Понятие переменной: область памяти, в которой хранится значение. Правила именования переменных:
●должны начинаться с буквы или символа подчеркивания _.
●могут содержать буквы, цифры и символы подчеркивания.
●регистр имеет значение (age и age — разные переменные).
Оператор присваивания =:
●присваивает значение переменной.
●синтаксис: имя_переменной = значение.
2.1.2. Числовые типы данных
Целые числа (int):
●представляют собой целые числа без дробной части.
●примеры: 0, 42, -7.
Числа с плавающей точкой (float): ● числа с дробной частью.
●примеры: 3.14, 0.001, -2.5.
Операции с числами:
●арифметические операции: +, -, *, /, //, %, **.
15
2.1.3. Строки и операции с ними
Строковый тип данных (str):
●последовательность символов, заключенных в кавычки
('...', "...").
Конкатенация строк:
●объединение строк с помощью оператора +.
●пример: 'hello' + ' ' + 'world' дает 'hello world'.
Повторение строк:
●оператор * повторяет строку заданное число раз.
●пример: 'ha' * 3 дает 'hahaha'.
Индексация и срезы:
●доступ к символам по индексу: строка[индекс].
●срезы позволяют получить подстроку: строка[начало:ко-
нец:шаг].
2.1.4. Булевы значения и логические операции
Булевы типы (True, False):
●представляют логические значения истины и лжи. Логические операторы:
●and: истина, если оба операнда истинны.
●or: истина, если хотя бы один операнд истинен.
●not: логическое отрицание.
2.2.Операторы и выражения
2.2.1. Арифметические операторы
Равно ==: проверяет равенство значений. Не равно !=: проверяет неравенство.
Больше >: проверяет, больше ли первое число второго. Меньше <: проверяет, меньше ли первое число второго.
Больше или равно >=: проверяет, больше или равно ли первое число второму.
Меньше или равно <=: проверяет, меньше или равно ли первое число второму.
16
2.2.2. Операторы сравнения
Равно ==: проверяет равенство значений. Не равно !=: проверяет неравенство.
Больше >: проверяет, больше ли первое число второго. Меньше <: проверяет, меньше ли первое число второго.
Больше или равно >=: проверяет, больше или равно ли первое число второму.
Меньше или равно <=: проверяет, меньше или равно ли первое число второму.
2.2.3.Логические операторы
and, or, not: используются для комбинирования логических выражений.
Примеры:
if age > 18 and age < 65: if not is_student:
2.2.4. Приоритет операторов
Порядок выполнения операций:
1.скобки ()
2.возведение в степень **
3.унарные плюсы и минусы +x, -x
4.умножение, деление, остаток от деления *, /, //, %
5.сложение и вычитание +, -
6.операторы сравнения ==, !=, >, <, >=, <=
7.логические операторы not, and, or Использование скобок:
● рекомендуется использовать скобки для явного указания порядка операций.
● пример: (a + b) * c
17
2.3. Условные конструкции
2.3.1. Оператор If
Синтаксис:
If условие: блок_кода
Использование:
●выполняет блок кода, если условие истинно.
●отступы важны для определения блока кода.
2.3.2.Оператор else и elif
else:
●выполняет блок кода, если предыдущее условие if ложно.
●синтаксис:
if условие: блок_кода_если_истинно
else:
блок_кода_если_ложно
elif:
●проверяет дополнительное условие, если предыдущее if ложно.
●синтаксис:
if условие1: блок_кода1 elif условие2: блок_кода2
else:
блок_кода3
2.3.3. Вложенные условия
Создание сложных логических структур:
●условия могут быть вложены друг в друга для проверки нескольких уровней логики.
●пример:
18
if условие1: if условие2:
блок_кода
2.4. Циклы
2.4.1. Цикл for
Итерация по последовательностям: ● синтаксис:
for переменная in последовательность: блок_кода
Функция range():
●генерирует последовательность чисел.
●примеры:
range(5) генерирует числа от 0 до 4. range(1, 6) генерирует числа от 1 до 5.
2.4.2.Цикл while
Выполнение цикла до тех пор, пока условие истинно: ● синтаксис:
while условие: блок_кода
Предостережения:
●необходимо убедиться, что условие цикла изменяется, чтобы избежать бесконечных циклов.
2.4.3. Управление циклом: break и continue
break:
●прерывает выполнение цикла полностью.
●применяется для выхода из цикла при наступлении опреде-
ленного условия. continue:
● прерывает текущую итерацию и переходит к следующей.
19
●используется для пропуска определенных шагов внутри цикла.
2.5.Структуры данных
2.5.1. Списки
●создание и инициализация:
o |
пустой список: my_list = [] |
o |
с элементами: my_list = [1, 2, 3] |
● доступ к элементам:
oпо индексу: my_list[0] — первый элемент.
oотрицательные индексы: my_list[-1] — последний элемент.
●срезы:
omy_list[1:3] — элементы со второго по третий.
●основные методы:
oappend(): добавляет элемент в конец списка.
oremove(): удаляет первый найденный элемент.
opop(): удаляет элемент по индексу и возвращает его.
2.5.2. Кортежи
Особенности:
●неизменяемые последовательности.
●создаются с помощью круглых скобок: my_tuple = (1, 2, 3)
Использование:
●хранение данных, которые не должны изменяться.
●быстрее списков при больших объемах данных.
2.5.3. Словари
Пары ключ-значение:
● создание:my_dict = {'ключ1': 'значение1', 'ключ2': 'значение2'}
20
