SlideShare a Scribd company logo
Модули и пакеты
Технологии и языки программирования
Юдинцев В. В.
Кафедра теоретической механики
Самарский университет
13 ноября 2016 г.
Содержание
1 Модули
2 Пакеты (Packages)
3 Полезные модули
math
numpy
matplotlib
scipy
pandas
sympy
Кафедра Теоретической механики Модули и пакеты 2 / 45
Модули
Модульное программирование
Модульное программирование — это организация
программы как совокупности небольших независимых
блоков — модулей.
Использование модульного программирования позволяет
упростить тестирование программы и поиск ошибок.
Кафедра Теоретической механики Модули и пакеты 4 / 45
Модули Python
В языке Питон модуль — это файл с python-кодом.
Модуль может содержать переменные, объявления
функций и классов.
Модуль может содержать и исполняемый код.
Кафедра Теоретической механики Модули и пакеты 5 / 45
Импорт модуля
my_module.py
1 def my_function_x2 ( x ) :
2 return x **2
3
4 def my_function_x3 ( x ) :
5 return x **3
main.py
1 import my_module
2
3 x = 3.0
4
5 res1 = my_module . my_function_x2 ( x )
6 res2 = my_module . my_function_x3 ( x )
Кафедра Теоретической механики Модули и пакеты 6 / 45
Импорт модуля
Импорт имён из модулей module1.py, module2.py, module3.py
import module1, module2, module3
Импорт математических функций из стандартного модуля math:
1 import math
2
3 a = math . sin ( math . pi / 4 . 0 )
4 b = math . tan ( math . radians ( 3 0 . 0 ) )
Кафедра Теоретической механики Модули и пакеты 7 / 45
Импорт выбранных имён из модуля
Импорт функций sin, cos, tan и константы π из модуля math
from math import sin, cos, tan, pi
1 from math import sin , cos , tan , pi
2
3 a = sin ( pi / 4 . 0 )
Имена из модуля используются без префикса — имени модуля.
Кафедра Теоретической механики Модули и пакеты 8 / 45
Импорт всех имён из модуля
Импорт определений всех функций и констант из модуля math
from math import *
Все определения модуля math:
1 import math
2
3 a = sin ( pi / 4 . 0 )
Импортированные имена из модуля используются без префикса
— имени модуля. При таком способе импорта возможно
перекрытие имён, если два модуля предоставляют для импорта
одно и то же имя для функции или объекта.
Кафедра Теоретической механики Модули и пакеты 9 / 45
Псевдонимы модулей
При импорте модулей им можно давать новые
имена-псевдонимы:
1 import numpy as np
2 import scipy . l i n a l g as l s
3
4 A = np . matrix ( [ [ 1 , 2 , 3] , [4 , 5 , 6] , [3 , 4 , 1 ] ] )
5 B = np . matrix ( [ [ 1 ] , [ 2 ] , [ 3 ] ] )
6
7 x = l s . solve ( A , B )
8 p r i n t ( x )
Решение матричного уравнения Ax = B:
[[ −0.66666667]
[ 1.33333333]
[ −0.33333333]]
Кафедра Теоретической механики Модули и пакеты 10 / 45
Пакеты (Packages)
Пакеты
Пакеты позволяют структурировать коллекции модулей,
составляющих большие библиотеки.
Пакеты формируются в виде иерархий каталогов с
исходными кодами
Кафедра Теоретической механики Модули и пакеты 12 / 45
Структура пакета
Пример пакета функций аналитической геометрии на плоскости
и в пространстве:
geometry
__init__.py
inplane
__init__.py
points.py
lines.py
spatial
__init__.py
points.py
lines.py
planes.py
Для того, чтобы транслятор
Python “понял”, что
просматриваемый им каталог
является каталогом с модулями в
корень такого каталога
помещается файл __init__.py
Файл __init__.py может быть
пустым или содержать код
инициализации пакета — код,
который будет выполняться при
импорте пакета
Кафедра Теоретической механики Модули и пакеты 13 / 45
Импорт модулей пакета: import
Импорт модуля points.py пакета geometry.inplane
geometry
__init__.py
inplane
__init__.py
points.py
1 import geometry . inplane . points
>> geometry . inplane . points . distance ( ( 1 , 2 ) , ( 7 , 3 ) )
>> 6.082762530298219
Фрагмент файла points.py
def distance ( p1 , p2 ) :
. . .
. . .
Кафедра Теоретической механики Модули и пакеты 14 / 45
Импорт модулей пакета: from ... import
Импорт модуля points.py пакета geometry.inplane
geometry
__init__.py
inplane
__init__.py
points.py
1 from geometry . inplane import points
2 p r i n t ( points . distance ( ( 1 , 2 ) , ( 7 , 3 ) ) )
>> 6.082762530298219
Кафедра Теоретической механики Модули и пакеты 15 / 45
Импорт модулей пакета: from ... import
Импорт имени (например, функции) из модуля points.py пакета
geometry.inplane для использования имени без префикса
модуля:
geometry
__init__.py
inplane
__init__.py
points.py
1 from geometry . inplane . points import distance
2
3 p r i n t ( distance ( ( 1 , 2 ) , ( 7 , 3 ) ) )
>> 6.082762530298219
Кафедра Теоретической механики Модули и пакеты 16 / 45
from ... import vs import
from package import item
item — пакет, модуль или имя, определённые в модуле package
import item.subitem. subsubitem
subsubitem — пакет или модуль, но не имя функции или
переменной, определённые в subitem
Кафедра Теоретической механики Модули и пакеты 17 / 45
from ... import *
Импорт всех имён, определённых в модуле
1 from mymodule import *
Если в модуле задана переменная __all__, которая определяет
список импортируемых имен, то будет импортированы только
имена из этого списка
1 _ _ a l l _ _ = ( ’ var1 ’ , ’ var2 ’ )
2
3 var1 = 10
4 var2 = 15
5
6 var3 = 30
Если переменная __all__ не определена, то импортируются все
имена, не начинающиеся с нижнего подчёркивания
Кафедра Теоретической механики Модули и пакеты 18 / 45
Поиск модулей транслятором
При импорте модуля транслятор Python ищет модуль (файл):
среди встроенных модулей, таких как math (каталоги
Python)
в каталоге файла, который импортирует модуль
в переменной окружения PYTHONPATH
Все каталоги поиска указаны в переменной sys.path:
>> import sys
>> p r i n t ( sys . path )
>> [ ’ ’ , ’ /home/ user / Programs / anaconda3 / l i b / python3
. 5 / site −packages / spyder / u t i l s / s i t e ’ , ’ /home/
user / Programs / anaconda3 / l i b / python3 .5 ’ , ’ /home/
user / Programs / anaconda3 / l i b / python3 . 5 / plat −
linux ’ , ’ /home/ user / Programs / anaconda3 / l i b /
python3 . 5 / lib −dynload ’ , . . . ]
Кафедра Теоретической механики Модули и пакеты 19 / 45
Выполнение модуля как программы
При импорте модуля код, находящийся вне определений
функций, выполнится.
Если необходимо разрешить выполнение такого кода
только при запуске модуля как программы:
1 > python . exe my_module . py
необходимо внутри модулю проверять значение
переменной __main__:
1 def my_function_B ( a ) :
2 . . .
3 def my_function_A ( a ) :
4 . . .
5 i f __name__ = ’ __main__ ’ :
6 p r i n t ( ’ Standalone running . . . ’ )
Кафедра Теоретической механики Модули и пакеты 20 / 45
Полезные модули
Модуль math
Математические функции для работы с вещественными
числами (float)
Модуль для работы с комплексными числами — cmath
Кафедра Теоретической механики Модули и пакеты 22 / 45
Импорт модуля math
Импорт модуля
1 import math
2
3 a = math . sin ( 1 . 0 )
4 p r i n t ( a )
>> 0.8414709848078965
Импорт отдельных имён модуля
1 from math import sin , cos , tan , pi
2 a = sin ( 1 . 0 )
3 b = cos ( 1 . 0 )
Импорт всех имён модуля
1 from math import *
2 a = sin ( 1 . 0 )
Кафедра Теоретической механики Модули и пакеты 23 / 45
Импорт всех имён
1 from cmath import *
2 from math import *
3
4 a = sqrt ( −0.5)
ValueError: math domain error
Имена модуля cmath переопределились модулем math, который
импортируется последним
1 import math
2 import cmath
3
4 b = cmath . sqrt ( −0.5)
Кафедра Теоретической механики Модули и пакеты 24 / 45
Преобразование числа
math.ceil(x) Округление до большего целого
math.floor(x) Округление до меньшего целого
math.trunc(x) Округление к нулю
math.fabs(x) Модуль числа
math.copysign(x,y) Модуль x со знаком числа y
Кафедра Теоретической механики Модули и пакеты 25 / 45
Сравнение вещественных чисел
Функция isclose
math.isclose(a,b,*,rel_tol=1e-09,abs_tol=0.0)
используется для проверки на равенство с заданной точностью
двух вещественных чисел.
Результат работы функции True или False
Если относительная или абсолютная погрешность чисел
меньше заданной величины, то числа считаются равными,
т.е. результат работы функции True, если выполняется
неравенство:
|a − b| ≤ max(rel_tol · max(|a|, |b|), abs_tol)
Кафедра Теоретической механики Модули и пакеты 26 / 45
Возведение в степень
math.exp(x) ex
math.log(x) lnx
math.log(x, n) lgnx
math.log10(x) lg10x
math.log2(x) lg2x
math.pow(x,y) xy
math.sqrt(x)
√
x
Кафедра Теоретической механики Модули и пакеты 27 / 45
Тригонометрические функции
math.sin(x) = sin x
math.cos(x) = cos x
math.tan(x) = tan x
math.acos(x) = arccos x
math.asin(x) = arcsin x
math.atan(x = arctan x
math.atan2(y,x) = arctan(y/x) ∈ (−π до π]
math.hypot(x,y) =
√
x2 + y2
Кафедра Теоретической механики Модули и пакеты 28 / 45
Градусы и радианы
math.degrees(x) = x × 180/π
math.radians(x) = x × π/180
Кафедра Теоретической механики Модули и пакеты 29 / 45
Константы
math.pi π = 3.141592 . . .
math.e e = 2.718281 . . .
math.inf бесконечность
math.nan не число
Кафедра Теоретической механики Модули и пакеты 30 / 45
Модуль numpy
Базовый пакет для численных методов
определяет типы данных: векторы, матрицы, многомерные
массивы
Функции для эффективной работы с матрицами
функции линейной алгебры
генераторы случайных чисел различных типов
преобразование Фурье
Кафедра Теоретической механики Модули и пакеты 31 / 45
Пример использование модуля numpy
Умножение матриц:
1 import numpy as np
2
3 m1 = np . matrix ( [ [ 1 , 2 , 3 ] , [ 5 , 5 , 6 ] ] )
4 m2 = np . matrix ( [ [ 3 , 2 ] , [ 4 , 2 ] , [ 1 , 1 ] ] )
5
6 m12 = m1*m2
7
8 p r i n t (m12)
[[14 9]
[41 26]]
Кафедра Теоретической механики Модули и пакеты 32 / 45
Пакет matplotlib
matplotlib — библиотека для построения графиков по
массивам (таблицам) данных с возможностью экспорта их в
различных форматы файлов
Вместе с NumPy, SciPy и IPython предоставляет
возможности, подобные MATLAB
Кафедра Теоретической механики Модули и пакеты 33 / 45
Пакет matplotlib
1 import matplotlib . pyplot as p l t
2 import numpy as np
3
4 x = np . arange ( 0 . 0 , np . pi * 2 . 0 , 0 . 1 )
5 y1 = np . sin ( x )
6 y2 = np . cos ( x )
7
8 p l t . plot ( x , y1 , x , y2 )
9
10 p l t . axis ( [ 0 , 2*np . pi , −1.1 , 1 . 1 ] )
11 p l t . xlabel ( ’ $  alpha$ , rad ’ )
12 p l t . ylabel ( ’ f ( x ) ’ )
13 p l t . legend ( [ ” sin ” , ” cos ” ] )
Кафедра Теоретической механики Модули и пакеты 34 / 45
Пакет matplotlib
0 1 2 3 4 5 6
α, rad
1.0
0.5
0.0
0.5
1.0
f(x)
sin
cos
Кафедра Теоретической механики Модули и пакеты 35 / 45
scipy
scipy.special
специальные функции
scipy.integration
численное интегрирование
scipy.optimize
оптимизация, решение нелинейных уравнений
scipy.interpolate
интерполирование
scipy.linalg
линейная алгебра
scipy.stats
статистика
Кафедра Теоретической механики Модули и пакеты 36 / 45
Пример использования модулей scipy
Численное решение нелинейного уравнения:
x + 2 cos x = 0
1 import numpy as np
2 from scipy . optimize import root
3
4 def func ( x ) :
5 return x + 2 * np . cos ( x )
6
7 sol = root ( func , 0 . 3 )
8 p r i n t ( sol . x )
>> array ([ −1.02986653])
Кафедра Теоретической механики Модули и пакеты 37 / 45
pandas
http://pandas.pydata.org
Пакет для эффективного анализа данных, первоначально
разработанный для анализа финансовой информации (2008).
Возможности pandas:
загрузка данных их текстовых файлов, таблиц XLS, баз
данных;
обработка таблиц и временных рядов, группировка данных,
переформатирование данных, создание сводных таблиц;
объединение наборов данных;
работа с данными большой размерности;
построение графиков.
Кафедра Теоретической механики Модули и пакеты 38 / 45
pandas
1 import pandas as pd
2 import matplotlib
3
4 data = pd . read_csv ( ” temp . dat ” )
5
6 r o l l i n g = pd . rolling_mean ( data , 20 , center = True )
7 r o l l i n g . columns =[ ”Время” , ”Средняя температура” ]
8 ax_data . s e t _ y l a b e l ( ’Температура $^ circ$C ’ )
9
10 ax_data = data . plot ( )
11 r o l l i n g . plot ( ax = ax_data )
Кафедра Теоретической механики Модули и пакеты 39 / 45
pandas
0:01:04 0:24:08 0:47:12 1:10:16 1:47:53 1:56:42 2:04:12 2:27:16 2:50:20
4
6
8
10
12
14
16
18
◦
C
Кафедра Теоретической механики Модули и пакеты 40 / 45
Загрузка данных из Сети
1 import matplotlib . pylab as p l t
2 import pandas as pd
3 import matplotlib
4 matplotlib . s t y l e . use ( ’ ggplot ’ )
5
6 data = pd . read_csv (
7 ” http : / /www. astronexus . com/ f i l e s / downloads / hygdata_v3 . csv . gz ” ,
8 compression = ” gzip ” )
9
10 data [ data [ ” d i s t ” ] <20]. plot . s c a t t e r ( x= ” x ” , y= ” y ” ,
11 s =5* data [ ” absmag ” ] , xlim =( −10 ,10) , ylim =( −10 ,10) )
12
13 p l t . xlabel ( ” x , pc ” )
14 p l t . ylabel ( ” y , pc ” )
15 p l t . savefig ( ’ s t a r s . png ’ , dpi =300)
Кафедра Теоретической механики Модули и пакеты 41 / 45
Карта ближайших звёзд
Кафедра Теоретической механики Модули и пакеты 42 / 45
sympy
http://www.sympy.org
Пакет для аналитических преобразований:
Решение уравнений
Дифференцирование функций
Интегрирование функций
Кафедра Теоретической механики Модули и пакеты 43 / 45
Решение уравнения
Решение квадратного уравнения
x2
+ 10x + 3 = 0
1 import sympy as sp
2
3 x = sp . symbols ( ’ x ’ )
4
5 f = x **2 + 10*x + 3
6
7 p r i n t ( sp . solve ( f ) )
>> [−5 − sqrt (22) , −5 + sqrt (22) ]
Кафедра Теоретической механики Модули и пакеты 44 / 45
Дифференцирование функции
Производная функции:
f = cos(x) sin2
(x)
1 import sympy as sp
2
3 x = sp . symbols ( ’ x ’ )
4
5 f = sp . cos ( x ) * sp . sin ( x ) **2
6
7 p r i n t ( sp . d i f f ( f , x ) )
>> −sin ( x ) **3 + 2* sin ( x ) * cos ( x ) **2
Кафедра Теоретической механики Модули и пакеты 45 / 45

More Related Content

What's hot

Numpy python cheat_sheet
Numpy python cheat_sheetNumpy python cheat_sheet
Numpy python cheat_sheet
Zahid Hasan
 
Functions in Python
Functions in PythonFunctions in Python
Functions in Python
Shakti Singh Rathore
 
Introduction to python
 Introduction to python Introduction to python
Introduction to python
Learnbay Datascience
 
Python collections
Python collectionsPython collections
Python collections
Manusha Dilan
 
Functions
FunctionsFunctions
Python Collections Tutorial | Edureka
Python Collections Tutorial | EdurekaPython Collections Tutorial | Edureka
Python Collections Tutorial | Edureka
Edureka!
 
Data Analysis with Python Pandas
Data Analysis with Python PandasData Analysis with Python Pandas
Data Analysis with Python Pandas
Neeru Mittal
 
Python: Polymorphism
Python: PolymorphismPython: Polymorphism
Python: Polymorphism
Damian T. Gordon
 
Python data type
Python data typePython data type
Python data type
nuripatidar
 
Web2py tutorial to create db driven application.
Web2py tutorial to create db driven application.Web2py tutorial to create db driven application.
Web2py tutorial to create db driven application.fRui Apps
 
Introduction to pandas
Introduction to pandasIntroduction to pandas
Introduction to pandas
Piyush rai
 
създаване на диаграми в Excel
създаване на диаграми в Excelсъздаване на диаграми в Excel
създаване на диаграми в ExcelПетя Газдова
 
Python Programming Essentials - M24 - math module
Python Programming Essentials - M24 - math modulePython Programming Essentials - M24 - math module
Python Programming Essentials - M24 - math module
P3 InfoTech Solutions Pvt. Ltd.
 
Celery
CeleryCelery
Celery
Fatih Erikli
 
Pandas
PandasPandas
Pandas
Jyoti shukla
 
Introducing the MySQL Workbench CASE tool
Introducing the MySQL Workbench CASE toolIntroducing the MySQL Workbench CASE tool
Introducing the MySQL Workbench CASE tool
András Bögöly
 
Fundamentals of Python Programming
Fundamentals of Python ProgrammingFundamentals of Python Programming
Fundamentals of Python Programming
Kamal Acharya
 
Learn 90% of Python in 90 Minutes
Learn 90% of Python in 90 MinutesLearn 90% of Python in 90 Minutes
Learn 90% of Python in 90 Minutes
Matt Harrison
 
Pandas Cheat Sheet
Pandas Cheat SheetPandas Cheat Sheet
Pandas Cheat Sheet
ACASH1011
 
Debugging Python with Pdb!
Debugging Python with Pdb!Debugging Python with Pdb!
Debugging Python with Pdb!
Noelle Daley
 

What's hot (20)

Numpy python cheat_sheet
Numpy python cheat_sheetNumpy python cheat_sheet
Numpy python cheat_sheet
 
Functions in Python
Functions in PythonFunctions in Python
Functions in Python
 
Introduction to python
 Introduction to python Introduction to python
Introduction to python
 
Python collections
Python collectionsPython collections
Python collections
 
Functions
FunctionsFunctions
Functions
 
Python Collections Tutorial | Edureka
Python Collections Tutorial | EdurekaPython Collections Tutorial | Edureka
Python Collections Tutorial | Edureka
 
Data Analysis with Python Pandas
Data Analysis with Python PandasData Analysis with Python Pandas
Data Analysis with Python Pandas
 
Python: Polymorphism
Python: PolymorphismPython: Polymorphism
Python: Polymorphism
 
Python data type
Python data typePython data type
Python data type
 
Web2py tutorial to create db driven application.
Web2py tutorial to create db driven application.Web2py tutorial to create db driven application.
Web2py tutorial to create db driven application.
 
Introduction to pandas
Introduction to pandasIntroduction to pandas
Introduction to pandas
 
създаване на диаграми в Excel
създаване на диаграми в Excelсъздаване на диаграми в Excel
създаване на диаграми в Excel
 
Python Programming Essentials - M24 - math module
Python Programming Essentials - M24 - math modulePython Programming Essentials - M24 - math module
Python Programming Essentials - M24 - math module
 
Celery
CeleryCelery
Celery
 
Pandas
PandasPandas
Pandas
 
Introducing the MySQL Workbench CASE tool
Introducing the MySQL Workbench CASE toolIntroducing the MySQL Workbench CASE tool
Introducing the MySQL Workbench CASE tool
 
Fundamentals of Python Programming
Fundamentals of Python ProgrammingFundamentals of Python Programming
Fundamentals of Python Programming
 
Learn 90% of Python in 90 Minutes
Learn 90% of Python in 90 MinutesLearn 90% of Python in 90 Minutes
Learn 90% of Python in 90 Minutes
 
Pandas Cheat Sheet
Pandas Cheat SheetPandas Cheat Sheet
Pandas Cheat Sheet
 
Debugging Python with Pdb!
Debugging Python with Pdb!Debugging Python with Pdb!
Debugging Python with Pdb!
 

Similar to Python: Модули и пакеты

Java. Методы
Java. Методы Java. Методы
Java. Методы
Unguryan Vitaliy
 
Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8.
Dima Dzuba
 
Алгоритмы и языки программирования
Алгоритмы и языки программированияАлгоритмы и языки программирования
Алгоритмы и языки программирования
Theoretical mechanics department
 
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Yandex
 
Основы Python. Функции
Основы Python. ФункцииОсновы Python. Функции
Основы Python. Функции
Theoretical mechanics department
 
вспомогательные алгоритмы
вспомогательные алгоритмывспомогательные алгоритмы
вспомогательные алгоритмыЕлена Ключева
 
Презентация по разработке схем в пакете OrCAD 9.2.ppt
Презентация по разработке схем в пакете OrCAD 9.2.pptПрезентация по разработке схем в пакете OrCAD 9.2.ppt
Презентация по разработке схем в пакете OrCAD 9.2.ppt
Sachin160667
 
Оптимизация производительности Python
Оптимизация производительности PythonОптимизация производительности Python
Оптимизация производительности Python
PyNSK
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Yandex
 
KNRTU course 1 optimisation methods
KNRTU course 1 optimisation methodsKNRTU course 1 optimisation methods
KNRTU course 1 optimisation methods
metamath
 
трасировка Mpi приложений
трасировка Mpi приложенийтрасировка Mpi приложений
трасировка Mpi приложенийMichael Karpov
 
Лекция 8. Итераторы, генераторы и модуль itertools.
 Лекция 8. Итераторы, генераторы и модуль itertools. Лекция 8. Итераторы, генераторы и модуль itertools.
Лекция 8. Итераторы, генераторы и модуль itertools.
Roman Brovko
 
17 pdf -_programmi
17 pdf -_programmi17 pdf -_programmi
17 pdf -_programmi
MBOU Spasskaya SOSH
 
Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)
Mikhail Kurnosov
 
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) it-people
 
особенности программирования на с++
особенности программирования на с++особенности программирования на с++
особенности программирования на с++
mcroitor
 
07-testing.pdf
07-testing.pdf07-testing.pdf
Красота и изящность стандартной библиотеки Python
Красота и изящность стандартной библиотеки PythonКрасота и изящность стандартной библиотеки Python
Красота и изящность стандартной библиотеки Python
Python Meetup
 

Similar to Python: Модули и пакеты (20)

Java. Методы
Java. Методы Java. Методы
Java. Методы
 
Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8.
 
Алгоритмы и языки программирования
Алгоритмы и языки программированияАлгоритмы и языки программирования
Алгоритмы и языки программирования
 
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
 
Основы Python. Функции
Основы Python. ФункцииОсновы Python. Функции
Основы Python. Функции
 
вспомогательные алгоритмы
вспомогательные алгоритмывспомогательные алгоритмы
вспомогательные алгоритмы
 
лекция 3
лекция 3лекция 3
лекция 3
 
Progr labrab-4-2013-c++
Progr labrab-4-2013-c++Progr labrab-4-2013-c++
Progr labrab-4-2013-c++
 
Презентация по разработке схем в пакете OrCAD 9.2.ppt
Презентация по разработке схем в пакете OrCAD 9.2.pptПрезентация по разработке схем в пакете OrCAD 9.2.ppt
Презентация по разработке схем в пакете OrCAD 9.2.ppt
 
Оптимизация производительности Python
Оптимизация производительности PythonОптимизация производительности Python
Оптимизация производительности Python
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий Леванов
 
KNRTU course 1 optimisation methods
KNRTU course 1 optimisation methodsKNRTU course 1 optimisation methods
KNRTU course 1 optimisation methods
 
трасировка Mpi приложений
трасировка Mpi приложенийтрасировка Mpi приложений
трасировка Mpi приложений
 
Лекция 8. Итераторы, генераторы и модуль itertools.
 Лекция 8. Итераторы, генераторы и модуль itertools. Лекция 8. Итераторы, генераторы и модуль itertools.
Лекция 8. Итераторы, генераторы и модуль itertools.
 
17 pdf -_programmi
17 pdf -_programmi17 pdf -_programmi
17 pdf -_programmi
 
Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)
 
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
 
особенности программирования на с++
особенности программирования на с++особенности программирования на с++
особенности программирования на с++
 
07-testing.pdf
07-testing.pdf07-testing.pdf
07-testing.pdf
 
Красота и изящность стандартной библиотеки Python
Красота и изящность стандартной библиотеки PythonКрасота и изящность стандартной библиотеки Python
Красота и изящность стандартной библиотеки Python
 

More from Theoretical mechanics department

Космический мусор
Космический мусорКосмический мусор
Космический мусор
Theoretical mechanics department
 
Основы SciPy
Основы SciPyОсновы SciPy
Модификация механизма Йо-Йо
Модификация механизма Йо-ЙоМодификация механизма Йо-Йо
Модификация механизма Йо-Йо
Theoretical mechanics department
 
Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование
Theoretical mechanics department
 
Python. Обработка ошибок
Python. Обработка ошибокPython. Обработка ошибок
Python. Обработка ошибок
Theoretical mechanics department
 
Python: ввод и вывод
Python: ввод и выводPython: ввод и вывод
Python: ввод и вывод
Theoretical mechanics department
 
Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754
Theoretical mechanics department
 
Chaotic motions of tethered satellites with low thrust
Chaotic motions of tethered satellites with low thrust Chaotic motions of tethered satellites with low thrust
Chaotic motions of tethered satellites with low thrust
Theoretical mechanics department
 
Docking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanismDocking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanism
Theoretical mechanics department
 
Deployers for nanosatellites
Deployers for nanosatellitesDeployers for nanosatellites
Deployers for nanosatellites
Theoretical mechanics department
 
CubeSat separation dynamics
CubeSat separation dynamicsCubeSat separation dynamics
CubeSat separation dynamics
Theoretical mechanics department
 
Chaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a TetherChaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a Tether
Theoretical mechanics department
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
Theoretical mechanics department
 
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Theoretical mechanics department
 
On problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towingOn problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towingTheoretical mechanics department
 
Методы решения нелинейных уравнений
Методы решения нелинейных уравненийМетоды решения нелинейных уравнений
Методы решения нелинейных уравнений
Theoretical mechanics department
 
Наноспутники формата кубсат
Наноспутники формата кубсатНаноспутники формата кубсат
Наноспутники формата кубсат
Theoretical mechanics department
 
Отделение створок головного обтекателя
Отделение створок головного обтекателяОтделение створок головного обтекателя
Отделение створок головного обтекателя
Theoretical mechanics department
 
1U-3U+ Cubesat Deployer by JSC SRC "Progress"
1U-3U+ Cubesat Deployer by JSC SRC "Progress"1U-3U+ Cubesat Deployer by JSC SRC "Progress"
1U-3U+ Cubesat Deployer by JSC SRC "Progress"
Theoretical mechanics department
 
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual FuelThe Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
Theoretical mechanics department
 

More from Theoretical mechanics department (20)

Космический мусор
Космический мусорКосмический мусор
Космический мусор
 
Основы SciPy
Основы SciPyОсновы SciPy
Основы SciPy
 
Модификация механизма Йо-Йо
Модификация механизма Йо-ЙоМодификация механизма Йо-Йо
Модификация механизма Йо-Йо
 
Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование
 
Python. Обработка ошибок
Python. Обработка ошибокPython. Обработка ошибок
Python. Обработка ошибок
 
Python: ввод и вывод
Python: ввод и выводPython: ввод и вывод
Python: ввод и вывод
 
Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754
 
Chaotic motions of tethered satellites with low thrust
Chaotic motions of tethered satellites with low thrust Chaotic motions of tethered satellites with low thrust
Chaotic motions of tethered satellites with low thrust
 
Docking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanismDocking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanism
 
Deployers for nanosatellites
Deployers for nanosatellitesDeployers for nanosatellites
Deployers for nanosatellites
 
CubeSat separation dynamics
CubeSat separation dynamicsCubeSat separation dynamics
CubeSat separation dynamics
 
Chaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a TetherChaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a Tether
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
 
On problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towingOn problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towing
 
Методы решения нелинейных уравнений
Методы решения нелинейных уравненийМетоды решения нелинейных уравнений
Методы решения нелинейных уравнений
 
Наноспутники формата кубсат
Наноспутники формата кубсатНаноспутники формата кубсат
Наноспутники формата кубсат
 
Отделение створок головного обтекателя
Отделение створок головного обтекателяОтделение створок головного обтекателя
Отделение створок головного обтекателя
 
1U-3U+ Cubesat Deployer by JSC SRC "Progress"
1U-3U+ Cubesat Deployer by JSC SRC "Progress"1U-3U+ Cubesat Deployer by JSC SRC "Progress"
1U-3U+ Cubesat Deployer by JSC SRC "Progress"
 
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual FuelThe Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
 

Python: Модули и пакеты

  • 1. Модули и пакеты Технологии и языки программирования Юдинцев В. В. Кафедра теоретической механики Самарский университет 13 ноября 2016 г.
  • 2. Содержание 1 Модули 2 Пакеты (Packages) 3 Полезные модули math numpy matplotlib scipy pandas sympy Кафедра Теоретической механики Модули и пакеты 2 / 45
  • 4. Модульное программирование Модульное программирование — это организация программы как совокупности небольших независимых блоков — модулей. Использование модульного программирования позволяет упростить тестирование программы и поиск ошибок. Кафедра Теоретической механики Модули и пакеты 4 / 45
  • 5. Модули Python В языке Питон модуль — это файл с python-кодом. Модуль может содержать переменные, объявления функций и классов. Модуль может содержать и исполняемый код. Кафедра Теоретической механики Модули и пакеты 5 / 45
  • 6. Импорт модуля my_module.py 1 def my_function_x2 ( x ) : 2 return x **2 3 4 def my_function_x3 ( x ) : 5 return x **3 main.py 1 import my_module 2 3 x = 3.0 4 5 res1 = my_module . my_function_x2 ( x ) 6 res2 = my_module . my_function_x3 ( x ) Кафедра Теоретической механики Модули и пакеты 6 / 45
  • 7. Импорт модуля Импорт имён из модулей module1.py, module2.py, module3.py import module1, module2, module3 Импорт математических функций из стандартного модуля math: 1 import math 2 3 a = math . sin ( math . pi / 4 . 0 ) 4 b = math . tan ( math . radians ( 3 0 . 0 ) ) Кафедра Теоретической механики Модули и пакеты 7 / 45
  • 8. Импорт выбранных имён из модуля Импорт функций sin, cos, tan и константы π из модуля math from math import sin, cos, tan, pi 1 from math import sin , cos , tan , pi 2 3 a = sin ( pi / 4 . 0 ) Имена из модуля используются без префикса — имени модуля. Кафедра Теоретической механики Модули и пакеты 8 / 45
  • 9. Импорт всех имён из модуля Импорт определений всех функций и констант из модуля math from math import * Все определения модуля math: 1 import math 2 3 a = sin ( pi / 4 . 0 ) Импортированные имена из модуля используются без префикса — имени модуля. При таком способе импорта возможно перекрытие имён, если два модуля предоставляют для импорта одно и то же имя для функции или объекта. Кафедра Теоретической механики Модули и пакеты 9 / 45
  • 10. Псевдонимы модулей При импорте модулей им можно давать новые имена-псевдонимы: 1 import numpy as np 2 import scipy . l i n a l g as l s 3 4 A = np . matrix ( [ [ 1 , 2 , 3] , [4 , 5 , 6] , [3 , 4 , 1 ] ] ) 5 B = np . matrix ( [ [ 1 ] , [ 2 ] , [ 3 ] ] ) 6 7 x = l s . solve ( A , B ) 8 p r i n t ( x ) Решение матричного уравнения Ax = B: [[ −0.66666667] [ 1.33333333] [ −0.33333333]] Кафедра Теоретической механики Модули и пакеты 10 / 45
  • 12. Пакеты Пакеты позволяют структурировать коллекции модулей, составляющих большие библиотеки. Пакеты формируются в виде иерархий каталогов с исходными кодами Кафедра Теоретической механики Модули и пакеты 12 / 45
  • 13. Структура пакета Пример пакета функций аналитической геометрии на плоскости и в пространстве: geometry __init__.py inplane __init__.py points.py lines.py spatial __init__.py points.py lines.py planes.py Для того, чтобы транслятор Python “понял”, что просматриваемый им каталог является каталогом с модулями в корень такого каталога помещается файл __init__.py Файл __init__.py может быть пустым или содержать код инициализации пакета — код, который будет выполняться при импорте пакета Кафедра Теоретической механики Модули и пакеты 13 / 45
  • 14. Импорт модулей пакета: import Импорт модуля points.py пакета geometry.inplane geometry __init__.py inplane __init__.py points.py 1 import geometry . inplane . points >> geometry . inplane . points . distance ( ( 1 , 2 ) , ( 7 , 3 ) ) >> 6.082762530298219 Фрагмент файла points.py def distance ( p1 , p2 ) : . . . . . . Кафедра Теоретической механики Модули и пакеты 14 / 45
  • 15. Импорт модулей пакета: from ... import Импорт модуля points.py пакета geometry.inplane geometry __init__.py inplane __init__.py points.py 1 from geometry . inplane import points 2 p r i n t ( points . distance ( ( 1 , 2 ) , ( 7 , 3 ) ) ) >> 6.082762530298219 Кафедра Теоретической механики Модули и пакеты 15 / 45
  • 16. Импорт модулей пакета: from ... import Импорт имени (например, функции) из модуля points.py пакета geometry.inplane для использования имени без префикса модуля: geometry __init__.py inplane __init__.py points.py 1 from geometry . inplane . points import distance 2 3 p r i n t ( distance ( ( 1 , 2 ) , ( 7 , 3 ) ) ) >> 6.082762530298219 Кафедра Теоретической механики Модули и пакеты 16 / 45
  • 17. from ... import vs import from package import item item — пакет, модуль или имя, определённые в модуле package import item.subitem. subsubitem subsubitem — пакет или модуль, но не имя функции или переменной, определённые в subitem Кафедра Теоретической механики Модули и пакеты 17 / 45
  • 18. from ... import * Импорт всех имён, определённых в модуле 1 from mymodule import * Если в модуле задана переменная __all__, которая определяет список импортируемых имен, то будет импортированы только имена из этого списка 1 _ _ a l l _ _ = ( ’ var1 ’ , ’ var2 ’ ) 2 3 var1 = 10 4 var2 = 15 5 6 var3 = 30 Если переменная __all__ не определена, то импортируются все имена, не начинающиеся с нижнего подчёркивания Кафедра Теоретической механики Модули и пакеты 18 / 45
  • 19. Поиск модулей транслятором При импорте модуля транслятор Python ищет модуль (файл): среди встроенных модулей, таких как math (каталоги Python) в каталоге файла, который импортирует модуль в переменной окружения PYTHONPATH Все каталоги поиска указаны в переменной sys.path: >> import sys >> p r i n t ( sys . path ) >> [ ’ ’ , ’ /home/ user / Programs / anaconda3 / l i b / python3 . 5 / site −packages / spyder / u t i l s / s i t e ’ , ’ /home/ user / Programs / anaconda3 / l i b / python3 .5 ’ , ’ /home/ user / Programs / anaconda3 / l i b / python3 . 5 / plat − linux ’ , ’ /home/ user / Programs / anaconda3 / l i b / python3 . 5 / lib −dynload ’ , . . . ] Кафедра Теоретической механики Модули и пакеты 19 / 45
  • 20. Выполнение модуля как программы При импорте модуля код, находящийся вне определений функций, выполнится. Если необходимо разрешить выполнение такого кода только при запуске модуля как программы: 1 > python . exe my_module . py необходимо внутри модулю проверять значение переменной __main__: 1 def my_function_B ( a ) : 2 . . . 3 def my_function_A ( a ) : 4 . . . 5 i f __name__ = ’ __main__ ’ : 6 p r i n t ( ’ Standalone running . . . ’ ) Кафедра Теоретической механики Модули и пакеты 20 / 45
  • 22. Модуль math Математические функции для работы с вещественными числами (float) Модуль для работы с комплексными числами — cmath Кафедра Теоретической механики Модули и пакеты 22 / 45
  • 23. Импорт модуля math Импорт модуля 1 import math 2 3 a = math . sin ( 1 . 0 ) 4 p r i n t ( a ) >> 0.8414709848078965 Импорт отдельных имён модуля 1 from math import sin , cos , tan , pi 2 a = sin ( 1 . 0 ) 3 b = cos ( 1 . 0 ) Импорт всех имён модуля 1 from math import * 2 a = sin ( 1 . 0 ) Кафедра Теоретической механики Модули и пакеты 23 / 45
  • 24. Импорт всех имён 1 from cmath import * 2 from math import * 3 4 a = sqrt ( −0.5) ValueError: math domain error Имена модуля cmath переопределились модулем math, который импортируется последним 1 import math 2 import cmath 3 4 b = cmath . sqrt ( −0.5) Кафедра Теоретической механики Модули и пакеты 24 / 45
  • 25. Преобразование числа math.ceil(x) Округление до большего целого math.floor(x) Округление до меньшего целого math.trunc(x) Округление к нулю math.fabs(x) Модуль числа math.copysign(x,y) Модуль x со знаком числа y Кафедра Теоретической механики Модули и пакеты 25 / 45
  • 26. Сравнение вещественных чисел Функция isclose math.isclose(a,b,*,rel_tol=1e-09,abs_tol=0.0) используется для проверки на равенство с заданной точностью двух вещественных чисел. Результат работы функции True или False Если относительная или абсолютная погрешность чисел меньше заданной величины, то числа считаются равными, т.е. результат работы функции True, если выполняется неравенство: |a − b| ≤ max(rel_tol · max(|a|, |b|), abs_tol) Кафедра Теоретической механики Модули и пакеты 26 / 45
  • 27. Возведение в степень math.exp(x) ex math.log(x) lnx math.log(x, n) lgnx math.log10(x) lg10x math.log2(x) lg2x math.pow(x,y) xy math.sqrt(x) √ x Кафедра Теоретической механики Модули и пакеты 27 / 45
  • 28. Тригонометрические функции math.sin(x) = sin x math.cos(x) = cos x math.tan(x) = tan x math.acos(x) = arccos x math.asin(x) = arcsin x math.atan(x = arctan x math.atan2(y,x) = arctan(y/x) ∈ (−π до π] math.hypot(x,y) = √ x2 + y2 Кафедра Теоретической механики Модули и пакеты 28 / 45
  • 29. Градусы и радианы math.degrees(x) = x × 180/π math.radians(x) = x × π/180 Кафедра Теоретической механики Модули и пакеты 29 / 45
  • 30. Константы math.pi π = 3.141592 . . . math.e e = 2.718281 . . . math.inf бесконечность math.nan не число Кафедра Теоретической механики Модули и пакеты 30 / 45
  • 31. Модуль numpy Базовый пакет для численных методов определяет типы данных: векторы, матрицы, многомерные массивы Функции для эффективной работы с матрицами функции линейной алгебры генераторы случайных чисел различных типов преобразование Фурье Кафедра Теоретической механики Модули и пакеты 31 / 45
  • 32. Пример использование модуля numpy Умножение матриц: 1 import numpy as np 2 3 m1 = np . matrix ( [ [ 1 , 2 , 3 ] , [ 5 , 5 , 6 ] ] ) 4 m2 = np . matrix ( [ [ 3 , 2 ] , [ 4 , 2 ] , [ 1 , 1 ] ] ) 5 6 m12 = m1*m2 7 8 p r i n t (m12) [[14 9] [41 26]] Кафедра Теоретической механики Модули и пакеты 32 / 45
  • 33. Пакет matplotlib matplotlib — библиотека для построения графиков по массивам (таблицам) данных с возможностью экспорта их в различных форматы файлов Вместе с NumPy, SciPy и IPython предоставляет возможности, подобные MATLAB Кафедра Теоретической механики Модули и пакеты 33 / 45
  • 34. Пакет matplotlib 1 import matplotlib . pyplot as p l t 2 import numpy as np 3 4 x = np . arange ( 0 . 0 , np . pi * 2 . 0 , 0 . 1 ) 5 y1 = np . sin ( x ) 6 y2 = np . cos ( x ) 7 8 p l t . plot ( x , y1 , x , y2 ) 9 10 p l t . axis ( [ 0 , 2*np . pi , −1.1 , 1 . 1 ] ) 11 p l t . xlabel ( ’ $ alpha$ , rad ’ ) 12 p l t . ylabel ( ’ f ( x ) ’ ) 13 p l t . legend ( [ ” sin ” , ” cos ” ] ) Кафедра Теоретической механики Модули и пакеты 34 / 45
  • 35. Пакет matplotlib 0 1 2 3 4 5 6 α, rad 1.0 0.5 0.0 0.5 1.0 f(x) sin cos Кафедра Теоретической механики Модули и пакеты 35 / 45
  • 36. scipy scipy.special специальные функции scipy.integration численное интегрирование scipy.optimize оптимизация, решение нелинейных уравнений scipy.interpolate интерполирование scipy.linalg линейная алгебра scipy.stats статистика Кафедра Теоретической механики Модули и пакеты 36 / 45
  • 37. Пример использования модулей scipy Численное решение нелинейного уравнения: x + 2 cos x = 0 1 import numpy as np 2 from scipy . optimize import root 3 4 def func ( x ) : 5 return x + 2 * np . cos ( x ) 6 7 sol = root ( func , 0 . 3 ) 8 p r i n t ( sol . x ) >> array ([ −1.02986653]) Кафедра Теоретической механики Модули и пакеты 37 / 45
  • 38. pandas http://pandas.pydata.org Пакет для эффективного анализа данных, первоначально разработанный для анализа финансовой информации (2008). Возможности pandas: загрузка данных их текстовых файлов, таблиц XLS, баз данных; обработка таблиц и временных рядов, группировка данных, переформатирование данных, создание сводных таблиц; объединение наборов данных; работа с данными большой размерности; построение графиков. Кафедра Теоретической механики Модули и пакеты 38 / 45
  • 39. pandas 1 import pandas as pd 2 import matplotlib 3 4 data = pd . read_csv ( ” temp . dat ” ) 5 6 r o l l i n g = pd . rolling_mean ( data , 20 , center = True ) 7 r o l l i n g . columns =[ ”Время” , ”Средняя температура” ] 8 ax_data . s e t _ y l a b e l ( ’Температура $^ circ$C ’ ) 9 10 ax_data = data . plot ( ) 11 r o l l i n g . plot ( ax = ax_data ) Кафедра Теоретической механики Модули и пакеты 39 / 45
  • 40. pandas 0:01:04 0:24:08 0:47:12 1:10:16 1:47:53 1:56:42 2:04:12 2:27:16 2:50:20 4 6 8 10 12 14 16 18 ◦ C Кафедра Теоретической механики Модули и пакеты 40 / 45
  • 41. Загрузка данных из Сети 1 import matplotlib . pylab as p l t 2 import pandas as pd 3 import matplotlib 4 matplotlib . s t y l e . use ( ’ ggplot ’ ) 5 6 data = pd . read_csv ( 7 ” http : / /www. astronexus . com/ f i l e s / downloads / hygdata_v3 . csv . gz ” , 8 compression = ” gzip ” ) 9 10 data [ data [ ” d i s t ” ] <20]. plot . s c a t t e r ( x= ” x ” , y= ” y ” , 11 s =5* data [ ” absmag ” ] , xlim =( −10 ,10) , ylim =( −10 ,10) ) 12 13 p l t . xlabel ( ” x , pc ” ) 14 p l t . ylabel ( ” y , pc ” ) 15 p l t . savefig ( ’ s t a r s . png ’ , dpi =300) Кафедра Теоретической механики Модули и пакеты 41 / 45
  • 42. Карта ближайших звёзд Кафедра Теоретической механики Модули и пакеты 42 / 45
  • 43. sympy http://www.sympy.org Пакет для аналитических преобразований: Решение уравнений Дифференцирование функций Интегрирование функций Кафедра Теоретической механики Модули и пакеты 43 / 45
  • 44. Решение уравнения Решение квадратного уравнения x2 + 10x + 3 = 0 1 import sympy as sp 2 3 x = sp . symbols ( ’ x ’ ) 4 5 f = x **2 + 10*x + 3 6 7 p r i n t ( sp . solve ( f ) ) >> [−5 − sqrt (22) , −5 + sqrt (22) ] Кафедра Теоретической механики Модули и пакеты 44 / 45
  • 45. Дифференцирование функции Производная функции: f = cos(x) sin2 (x) 1 import sympy as sp 2 3 x = sp . symbols ( ’ x ’ ) 4 5 f = sp . cos ( x ) * sp . sin ( x ) **2 6 7 p r i n t ( sp . d i f f ( f , x ) ) >> −sin ( x ) **3 + 2* sin ( x ) * cos ( x ) **2 Кафедра Теоретической механики Модули и пакеты 45 / 45