Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7615.pdf
Скачиваний:
2
Добавлен:
23.11.2023
Размер:
1.17 Mб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 1

Введение в инструментальные средства разработки ИКС с ИИ

Цель работы – ознакомить с языком програмирования Python, получить представление о структурах данных DataFrame и Series библиотеки pandas:

Доступ и управление данными в DataFrame и Series

Импорт CSV данных в pandas DataFrame

Переиндексировать DataFrame в перемешивать данные

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Файлы программы Python

Python код обычно создается в текстовых документах с разрешением ".py": myprogram.py

Предполагается, что каждая строка в программном файле Python является оператором Python или его частью.

Единственным исключением являются строки комментариев, которые начинаются

ссимвола # (возможно, которому предшествует произвольное количество пробельных символов, т. е. табуляции или пробелов). Строки комментариев обычно игнорируются интерпретатором Python.

• Чтобы запустить нашу программу Python из командной строки, мы используем: $ python myprogram.py

• В системах UNIX путь к интерпретатору обычно указывается в первой строке программы (обратите внимание, что это строка комментария в отношении интерпретатора

Python):

#!/usr/bin/env python

• Если мы это сделаем, и если мы дополнительно настроим скрипт файла как

исполняемый, мы можем запустить программу следующим образом.: $ myprogram.py

Пример:

ls scripts/hello-world*.py

ls: cannot access 'scripts/hello-world*.py': No such file or directory cat scripts/hello-world.py

cat: scripts/hello-world.py: No such file or directory !python scripts/hello-world.py

python3: can't open file 'scripts/hello-world.py': [Errno 2] No such file or directory

Кодировка символов

Стандартная кодировка символов — ASCII, но мы можем использовать любую другую кодировку, например UTF-8. Чтобы указать, что используется UTF-8, мы включаем специальную строку

# -*- coding: UTF-8 -*-

в верху файла.

cat scripts/hello-world-in-swedish.py

cat: scripts/hello-world-in-swedish.py: No such file or directory !python scripts/hello-world-in-swedish.py

python3: can't open file 'scripts/hello-world-in-swedish.py': [Errno 2] No such file or directory

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

5

IPython notebooks

Этот файл — записная книжка IPython — не соответствует стандартному образцу кода Python в текстовом файле. Вместо этого записная книжка IPython хранится в виде файла в формате JSON. Преимущество в том, что мы можем смешивать форматированный текст, код Python и вывод кода. Однако для его запуска требуется сервер ноутбуковIPython, и поэтому он не является отдельной программой Python, как описано выше. Кроме этого, нет никакой разницы между кодом Python, который входит в файл программы, или блокнотом IPython.

Модули

Большая часть функциональности Python предоставляется модулями. Стандартная библиотека Pфython представляет собой большой набор модулей, обеспечивающих кроссплатформенные реализации общих возможностей, таких как доступ к операционной системе, файловый ввод-вывод, управление строками, сетевое взаимодействие и многое другое.

Чтобы использовать модуль в программе Python, его сначала нужно импортировать. Модуль можно импортировать с помощью оператора import. Например, чтобы импортировать модуль math, который содержит множество стандартных математических функций, мы можем сделать:

import math

Эта команда включает весь модуль и делает его доступным для дальнейшего использования в программе. Например, мы можем сделать:

import math

x = math.cos(2 * math.pi)

print(x)

1.0

В качестве альтернативы мы можем импортировать все символы (функции и переменные) в модуле в текущее пространство имен (чтобы нам не нужно было использовать префикс math. каждый раз, когда мы используем что-то из модуля «math»:

from math import *

x = cos(2 * pi)

print(x)

1.0

Этот шаблон может быть очень удобным, но в больших программах, которые включают много модулей, часто бывает полезно хранить символы из каждого модуля в их собственных пространствах имен, используя шаблон «импорт математики». Это устранило бы потенциально запутанные проблемы с конфликтами пространств имен.

В качестве третьего варианта мы можем импортировать только несколько выбранных символов из модуля, явно указав, какие из них мы хотим импортировать, вместо использования подстановочного знака *:

from math import cos, pi

x = cos(2 * pi)

print(x)

1.0

Looking at what a module contains, and its documentation (Глядя на то, что содержит модуль, и его документацию)

Как только модуль импортирован, мы можем перечислить символы, которые он предоставляет, используя функцию dir:

6

import math

print(dir(math))

[' doc ', ' loader ', ' name ', ' package ', ' spec ', 'acos', 'acosh', 'asin', 'asinh',

'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

А с помощью функции help мы можем получить описание каждой функции

(большинство функций задокументировано таким образом).

 

 

 

help(math.log)

 

 

 

 

 

 

 

Help

on

built-in

function

 

log

in

module

math:

log(...)

 

 

 

 

 

 

 

 

log(x,

 

 

 

 

 

 

[base=math.e])

Return

the

logarithm

of

x

to

the

given

base.

If the

base

not specified,

returns

the

natural

logarithm

(base e)

of x.

log(10) 2.302585092994046 log(10, 2) 3.3219280948873626

Мы также можем использовать функцию «помощь» непосредственно в модулях: Попробуйте

help(math)

Некоторые полезные модули из стандартной библиотеки Python: os, sys, math, shutil, re, subprocess, multiprocessing, threading. Полный список стандартных модулей для Python 2 и Python 3 доступен по адресу http://docs.python.org/2/library/ и http://docs.python.org/3/library/, соответственно.

Переменные и типы Имена символов

Имена переменных в Python могут содержать буквенно-цифровые символы a-z, A-Z, 0- 9 и некоторые специальные символы, такие как _. Нормальные имена переменных должны начинаться с буквы.

По соглашению имена переменных начинаются со строчной буквы, а имена классов

— с заглавной.

Кроме того, существует ряд ключевых слов Python, которые нельзя использовать в

качестве имен переменных. Эти ключевые слова:

 

 

 

 

and,

as,

assert,

break,

class,

continue,

def,

del, elif,

else,

except, exec,

finally,

for,

from,

global,

if,

import, in,

is,

lambda,

not,

or, pass, print,

raise, return, try, while, with, yield

Примечание. Помните о ключевом слове лямбда, которое вполне может быть естественным именем переменной в научной программе. Но, будучи ключевым словом, его нельзя использовать в качестве имени переменной.

Присваивание

Оператор присваивания в Python — =. Python — это язык с динамической типизацией, поэтому нам не нужно указывать тип переменной при ее создании.

Присвоение значения новой переменной создает переменную:

# variable assignments x = 1.0

my_variable = 12.2

7

Хотя это и не указано явно, переменная имеет связанный с ней тип. Тип является производным от значения, которое было ему присвоено.

type(x) float

Если мы присвоим переменной новое значение, ее тип может измениться. x = 1

type(x) int

Если мы попытаемся использовать переменную, которая еще не определена, мы получим NameError:

print(y)

NameError

 

Traceback (most recent call last)

<ipython-input-19-d9183e048de3>

 

in

<module>

---->

1

 

print(y)

NameError: name 'y' is not defined

Основные типы

# integers x = 1 type(x) int

# float x = 1.0 type(x) float

# boolean b1 = True b2 = False

type(b1) bool

# complex numbers: обратите внимание на использование `j` для указания мнимой части x = 1.0 - 1.0j

type(x) complex print(x) (1-1j)

print(x.real, x.imag) 1.0 -1.0

Функциональная утилита Type

Модуль types содержит несколько определений имен типов, которые можно использовать для проверки того, относятся ли переменные к определенным типам: import types

# вывести все типы, определенные в модуле `types`

 

print(dir(types))

 

 

 

['AsyncGeneratorType',

'BuiltinFunctionType',

'BuiltinMethodType',

'ClassMethodDescriptorType',

'CodeType',

'CoroutineType',

'DynamicClassAttribute',

'FrameType', 'FunctionType', 'GeneratorType', 'GetSetDescriptorType', 'LambdaType',

'MappingProxyType',

'MemberDescriptorType',

'MethodDescriptorType',

'MethodType',

'MethodWrapperType',

'ModuleType',

'SimpleNamespace',

'TracebackType',

8

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]