- •Инструментальные средства разработки инфокоммуникационных систем с искусственным интеллектом
- •ОГЛАВЛЕНИЕ
- •Введение в инструментальные средства разработки ИКС с ИИ
- •ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
- •Пример:
- •Кодировка символов
- •в верху файла.
- •IPython notebooks
- •Модули
- •Looking at what a module contains, and its documentation (Глядя на то, что содержит модуль, и его документацию)
- •Переменные и типы Имена символов
- •Присваивание
- •Основные типы
- •Функциональная утилита Type
- •Вывод type
- •Операторы и сравнения
- •Составные типы: строки, список и словари. Текстовые переменные
- •Индексация начинается с 0!
- •Лист
- •Кортежи
- •Словари
- •Услоаные операторы и табуляция Условные операторы: if, elif, else
- •else:
- •Циклы
- •Списки: создание списков с использованием циклов for:
- •while циклы:
- •Функции
- •Аргумент по умолчанию и ключевые слова
- •Безымянные функции (lambda функция)
- •Классы
- •Исключения
- •Дополнительная литература
- •Часть 2. Введение в pandas Цели обучения:
- •Основные понятия
- •Работа с колонками и строками DataFrame
- •Манипулирование данными
- •Решение
- •Indexes
- •Упражнение #2
- •Копирование DataFrame
- •Введение в анализ данных (очистка, интерполяция, экстраполяция)
- •Формирование дата фрейма и интерполяция пропущенны значений
- •Графическое представление обработанного дата фрейма (библ. pyplot)
- •Анализ графика и удаление значений за неполный день
- •Обработка аномалий временного хода и апроксимация Детектирование аномалий
- •Интерполяция
- •Визуализация аномалий
- •Сглаживание временного ряда
- •Анализ временных рядов (регрессия)
- •ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
- •Базовые методы программирования систем ИИ
- •ТЕОРЕТИЧЕСКАЯ ЧАСТЬ:
- •ПРАКТИЧЕСКАЯ ЧАСТЬ.
- •Кластерный анализ
- •Применение нейронных сетей для анализа временных рядов
- •Когнитивные системы связи
Кортежи
Кортежи похожи на списки, за исключением того, что они не могут быть изменены после создания, то есть они неизменяемы (immutable).
В Python кортежи создаются с использованием синтаксиса (..., ..., ...) или даже ..., ...: point = (10, 20)
print(point, type(point)) (10, 20) <class 'tuple'> point = 10, 20
print(point, type(point)) (10, 20) <class 'tuple'>
Мы можем распаковать кортеж, назначив его в список переменных, разделенных запятыми:
x, y = point
print("x =", x) print("y =", y) x = 10
y = 20
Если мы попытаемся присвоить новое значение элементу в кортеже, мы получим ошибку: point[0] = 20
TypeError Traceback (most recent call last) <ipython-input-86-9734b1daa940> in <module>
----> 1 point[0] = 20
TypeError: 'tuple' object does not support item assignment
Словари
Словари также похожи на списки, за исключением того, что каждый элемент представляет собой пару ключ-значение. Синтаксис словарей: {key1 : value1, ...}: params = {"parameter1" : 1.0,
"parameter2" : 2.0, "parameter3" : 3.0,}
print(type(params))
print(params) <class 'dict'>
{'parameter1': 1.0, 'parameter2': 2.0, 'parameter3': 3.0} print("parameter1 = " + str(params["parameter1"])) print("parameter2 = " + str(params["parameter2"])) print("parameter3 = " + str(params["parameter3"])) parameter1 = 1.0
parameter2 = 2.0 parameter3 = 3.0 params["parameter1"] = "A" params["parameter2"] = "B"
# add a new entry params["parameter4"] = "D"
print("parameter1 = " + str(params["parameter1"]))
14
print("parameter2 = " + str(params["parameter2"])) print("parameter3 = " + str(params["parameter3"])) print("parameter4 = " + str(params["parameter4"])) parameter1 = A
parameter2 = B parameter3 = 3.0 parameter4 = D
Услоаные операторы и табуляция Условные операторы: if, elif, else
Синтаксис Python для условного выполнения кода использует ключевые слова if, elif (else if), else:
statement1 = False statement2 = False
if statement1: print("statement1 is True")
elif statement2: print("statement2 is True")
else:
print("statement1 and statement2 are False") statement1 and statement2 are False
Здесь мы впервые столкнулись со своеобразным и необычным аспектом языка программирования Python: программные блоки определяются уровнем отступа. Сравните с эквивалентным кодом C:
if (statement1)
{
printf("statement1 is True\n");
}
else if (statement2)
{
printf("statement2 is True\n");
}
else
{
printf("statement1 and statement2 are False\n");
}
В C блоки определяются закрывающими фигурными скобками { и }. А уровень отступа (пробел перед операторами кода) значения не имеет (совершенно необязательно).
Но в Python размер блока кода определяется уровнем отступа (обычно это табуляция или, скажем, четыре пробела). Это означает, что мы должны быть осторожны с правильным отступом в нашем коде, иначе мы получим синтаксические ошибки.
Примеры:
statement1 = statement2 = True
if statement1: if statement2:
print("both statement1 and statement2 are True") both statement1 and statement2 are True
# Плохой отступ! if statement1:
15
if statement2:
print("both statement1 and statement2 are True") # эта строка имеет неверный отступ File "<ipython-input-93-ffc4bc2482bd>", line 4
print("both statement1 and statement2 are True") # эта строка имеет неверный отступ
^
IndentationError: expected an indented block
statement1 = False
if statement1:
print("printed if statement1 is True")
print("still inside the if block") if statement1:
print("printed if statement1 is True")
print("now outside the if block") now outside the if block
Циклы
В Python циклы можно запрограммировать разными способами. Наиболее распространенным является цикл for, который используется вместе с итерируемыми объектами, такими как списки. Основной синтаксис:
for циклы: for x in [1,2,3]:
print(x)
1
2
3
Цикл for выполняет итерацию по элементам предоставленного списка и выполняет содержащий его блок один раз для каждого элемента. В цикле for можно использовать любой список. Например:
for x in range(4): # by default range start at 0 print(x)
0
1
2
3
Внимание: range(4) не включает 4 ! for x in range(-3,3):
print(x)
-3 -2 -1 0 1 2
for word in ["scientific", "computing", "with", "python"]: print(word)
scientific computing with python
16
Чтобы перебрать пары ключ-значение словаря: for key, value in params.items():
print(key + " = " + str(value)) parameter1 = A
parameter2 = B parameter3 = 3.0 parameter4 = D
Иногда полезно иметь доступ к индексам значений при переборе списка. Для этого мы можем использовать функцию enumerate:
for idx, x in enumerate(range(-3,3)): print(idx, x)
0-3
1-2
2-1
30
41
52
Списки: создание списков с использованием циклов for:
Удобный и компактный способ инициализации списков: l1 = [x**2 for x in range(0,5)]
print(l1)
[0, 1, 4, 9, 16] while циклы: i = 0
while i < 5: print(i)
i = i + 1
print("done") 0 1 2 3 4
done
Обратите внимание, что оператор print('done') не является частью тела цикла while изза разницы в отступах.
Функции
Функция в Python определяется с помощью ключевого слова def, за которым следует имя функции, подпись в круглых скобках () и двоеточие :. Следующий код с одним дополнительным уровнем отступа является телом функции.
def func0(): print("test")
func0() test
Необязательно, но настоятельно рекомендуется, мы можем определить так называемую «строку документации», которая является описанием назначения и поведения функций. Строка документации должна следовать непосредственно после определения функции, перед кодом в теле функции.
17