Разделы презентаций


Москва, 2018 Информационные технологии Основы программирования на Python 3 Каф

Содержание

Лекция 7. Введение в библиотеки PythonМатрицыБиблиотеки

Слайды и текст этой презентации

Слайд 1Москва, 2018
Информационные
технологии
Основы
программирования
на Python 3
Каф. ИКТ РХТУ им.

Д.И. Менделеева Ст. преп. Васецкий А.М.

Москва, 2018Информационные технологииОсновы программирования на Python 3Каф. ИКТ РХТУ им. Д.И. Менделеева Ст. преп. Васецкий А.М.

Слайд 2Лекция 7.
Введение в
библиотеки Python
Матрицы
Библиотеки


Лекция 7. Введение в библиотеки PythonМатрицыБиблиотеки

Слайд 3Библиотеки-1
Библиотека численных методов NumPy
NumPy.linalg (Линейная алгебра);
NumPy.random (Случайные числа);
NumPy (Раздел «Индексация»

(Indexing routines));
NumPy (Раздел «Ввод и вывод» (Input and output);
NumPy (Разделы

строковых и логических операций);
NumPy (Разделы операций с массивами);
NumPy (Раздел математических функций);
NumPy (Разделы сортировки и поиска);
Библиотека алгоритмов и математических инструментов SciPy
SciPy.linalg (Линейная алгебра);
SciPy.integrate (Интегрирование и решение обыкновенных дифференциальных уравнений);
SciPy.stats (Статистические функции);
SciPy.optimize (Оптимизация);
SciPy.interpolate (Интерполяция);

Библиотеки-1Библиотека численных методов NumPyNumPy.linalg (Линейная алгебра);NumPy.random (Случайные числа);NumPy (Раздел «Индексация» (Indexing routines));NumPy (Раздел «Ввод и вывод» (Input

Слайд 4Библиотеки-2
Blaze – численные методы для больших данных;
Pandas – библиотека обработки

данных;
Fuzzywuzzy – библиотека сравнения данных;
matplotlib – построение графиков;
Seaborn – визуализация

статистических моделей;
Altair – визуализация данных;
Glueviz – визуализация данных;
Pyglet – 3D-анимация;
Vpython – 3D-графика;
Plotly – библиотека работы с графикой;
Pillow – библиотека работы с графикой;
Gnuplot – библиотека работы с графическими изображениями;
PyX – библиотека работы с графическими изображениями, PDF и Postscript;
geopy – библиотека для геолокации;
Requests – HTTP библиотека;
Urllib и Urllib2 – работа с Интернет;
BeautifulSoup – XML и HTML библиотека;
Scrapy – библиотека для парсинга сайта;
Django – Web-фреймворк;
Flask – Web-фреймворк;
Библиотеки-2Blaze – численные методы для больших данных;Pandas – библиотека обработки данных;Fuzzywuzzy – библиотека сравнения данных;matplotlib – построение

Слайд 5Библиотеки-3
wxPython – пользовательский интерфейс;
Tkinter – пользовательский интерфейс;
pyQT – пользовательский интерфейс;
pyGtk

– пользовательский интерфейс;
pywin32 – библиотека взаимодействия с Windows;
Nose – среда

тестирования;
Nltk – работа со строками и пр.;
ParaText – библиотека для обработки текста;
SymPy – библиотека для символьных вычислений;
ChemPy – библиотека химических расчётов;
SciKit-Learn – инструмент для обработки изображений и имитации искусственного интеллекта;
Theano – библиотека, которая используется для разработки систем машинного обучения;
PyCrypto – криптографическая библиотека;
mxODBC – библиотека для связи с базами данных;
pyGame – библиотека для написания игровых приложений;
pyQuery – аналог библиотеки jquery для работы с XML и HTML документами;
Модули сериализации и десериализации данных (pickle, json, csv, yaml и др.)
Библиотеки-3wxPython – пользовательский интерфейс;Tkinter – пользовательский интерфейс;pyQT – пользовательский интерфейс;pyGtk – пользовательский интерфейс;pywin32 – библиотека взаимодействия с

Слайд 6Введение в NumPy
NumPy – фундаментальный пакет для научных вычислений с

Python. В нём содержатся:
Мощный объект N-мерного массива.
сложные функции.
Инструментарий для интеграции

с кодом на языках C/C++ и Fortran.
Линейная алгебра, трансформации Фурье, случайные числа.
Кроме того, данный пакет может быть использован как многомерный контейнер общих данных. Произвольные типы данных могут быть определены. Это позволяет NumPy легко и быстро интегрироваться с широким спектром баз данных.

Введение в NumPyNumPy – фундаментальный пакет для научных вычислений с Python. В нём содержатся:Мощный объект N-мерного массива.сложные

Слайд 7Ошибка multiarray
В pyCharm отмечено наличие ошибки при установке numpy

и некоторых других библиотек:

ImportError:
Importing the multiarray numpy extension module failed.

Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control). Otherwise reinstall numpy.

Original error was: DLL load failed: The specified module could not be found.


Ошибка multiarray В pyCharm отмечено наличие ошибки при установке numpy и некоторых других библиотек:ImportError:Importing the multiarray numpy

Слайд 8Устранение ошибки multiarray
Ошибка связана с переменной среды PATH.
Самый простой

способ её устранить, это переустановить Anaconda и поставить флажок в

первое поле.

В переменную среды PATH добавятся пути к папкам Anaconda:
d:\ProgramData\Anaconda3;d:\ProgramData\Anaconda3\Library\mingw-w64\bin;
d:\ProgramData\Anaconda3\Library\usr\bin;
d:\ProgramData\Anaconda3\Library\bin;d:\ProgramData\Anaconda3\Scripts


Для проверки правильности работы библиотеки наберите:
import numpy as np print(np.__version__)

Устранение ошибки multiarray Ошибка связана с переменной среды PATH.Самый простой способ её устранить, это переустановить Anaconda и

Слайд 9Основные разделы NumPy-1
Создание массивов
Операции с массивами
Бинарные (побитовые) операции
Строковые операции
Функции даты

и времени
Дискретная трансформация Фурье
Финансовые функции
Функциональное программирование
Процедуры индексации
Ввод/вывод

Основные разделы NumPy-1Создание массивовОперации с массивамиБинарные (побитовые) операцииСтроковые операцииФункции даты и времениДискретная трансформация ФурьеФинансовые функцииФункциональное программированиеПроцедуры индексацииВвод/вывод

Слайд 10Основные разделы NumPy-2
Линейная алгебра
Логические функции
Маскированные операции с массивами
Математические функции
Матричные функции
Полиномы
Случайные

числа
Сортировка
Статистика
Оконные функции

Основные разделы NumPy-2Линейная алгебраЛогические функцииМаскированные операции с массивамиМатематические функцииМатричные функцииПолиномыСлучайные числаСортировкаСтатистикаОконные функции

Слайд 11Стандартные типы данных

Стандартные типы данных

Слайд 12Стандартные типы данных-2

Стандартные типы данных-2

Слайд 13Массивы
Библиотека NumPy обеспечивает эффективный интерфейс для хранения и работы с

плотными буферами данных. Массивы в ней похожи на встроенный тип

данных "список" (list) языка Python, но обеспечивают гораздо более эффективное хранение и операции с данными при росте размера массивов.
Кроме того срезы массивов возвращают представления (views), а не копии (copies) данных массива. Этим срезы массивов NumPy отличаются от срезов списков так как в списках срезы являются копиями.
На уровне реализации массив фактически содержит один указатель на непрерывный блок данных. Список же в языке Python содержит указатель на блок указателей, каждый из которых, в свою очередь, указывает на целый объект языка Python, например, на целое число.
Массивам с фиксированным типом из библиотеки NumPy проигрывают спискам в гибкости, однако гораздо эффективнее хранят данные и работают с ними.

МассивыБиблиотека NumPy обеспечивает эффективный интерфейс для хранения и работы с плотными буферами данных. Массивы в ней похожи

Слайд 14Создание массивов
Существуют следующие основные способы создания массивов
Преобразование из других структур

Python (списки, кортежи и т.п.)
Внутренние объекты создания массивов numpy (arange,

ones, zeros, и т.п.)
Чтение массивов с диска, как из стандартных, так и из пользовательских форматов
Создание массивов из "сырых" байтов с использованием строк или буферов
Использование специальных библиотечных функций (например, random)
Создание массивовСуществуют следующие основные способы создания массивовПреобразование из других структур Python (списки, кортежи и т.п.)Внутренние объекты создания

Слайд 15Создание массивов
Встроенный модуль array (доступен с версии 3.3 Python) можно

использовать для создания плотных массивов данных одного типа:

import array L =

list(range(5)) A = array.array('i', L) # array('i', [0, 1, 2, 3, 4])
'i' – код типа, указывающий, что содержимое является целыми числами.
Можно напрямую задавать массивы через NumPy:
import numpy as np
A = np.array([1, 0, -2, 4, 3]) # [ 1 0 -2 4 3]
B = np.array([0, 1, 2, 3], dtype='float32')
# [0. 1. 2. 3.]

Создание массивовВстроенный модуль array (доступен с версии 3.3 Python) можно использовать для создания плотных массивов данных одного

Слайд 16Многомерные массивы
Вложенные списки преобразуются в многомерный массив
B = np.array([range(i, i

+ 3) for i in [0, 2, 4]])
# [[0 1

2]
# [2 3 4]
# [4 5 6]]
Можно использовать одновременно списки и кортежи
B = np.array([[1,2.0],[0,0],(1+1j,3.)])
# [[1.+0.j 2.+0.j]
# [0.+0.j 0.+0.j]
# [1.+1.j 3.+0.j]]
Многомерные массивыВложенные списки преобразуются в многомерный массивB = np.array([range(i, i + 3) for i in [0, 2,

Слайд 17Способы инициализации массивов

Способы инициализации массивов

Слайд 18Примеры инициализации - 1
B = np.zeros(5, dtype=int) # [0 0

0 0 0]
B = np.ones((2, 3), dtype=float)
#[[1. 1. 1.]
# [1.

1. 1.]]
B = np.empty([3, 2], dtype=int)
# Внутри В может находиться что угодно
# Работает быстрее, чем методы с
# инициализацией
# [[-512881756 2046]
# [-512880032 2046]
# [ 0 0]]
B = ([1,2,3], [4,5,6]) # В – массив-шаблон A = np.empty_like(B)
# Внутри А может находиться что угодно
#[[2982 0 0]
# [ 0 0 0]]


Примеры инициализации - 1B = np.zeros(5, dtype=int) # [0 0 0 0 0]B = np.ones((2, 3), dtype=float)#[[1.

Слайд 19Примеры инициализации - 2
B = np.eye(2, dtype=int)
# Единичная целочисленная

матрица
# [[1 0]
# [0 1]]
B = np.eye(2, 3, dtype=int) #

Матрица 2×3
# [[1 0 0]
# [0 1 0]]
B = np.eye(3, k=1)
# Матрица с наддиагональными единичными элементами
# [[0. 1. 0.]
# [0. 0. 1.]
# [0. 0. 0.]]
Примеры инициализации - 2B = np.eye(2, dtype=int) # Единичная целочисленная матрица# [[1 0]# [0 1]]B = np.eye(2,

Слайд 20Примеры инициализации - 3
B = np.identity(2)
# Единичная матрица типа

float (по умолчанию)
# [[1. 0.]
# [0. 1.]]
B = np.full((2, 3),

np.inf) # заполнение
# [[inf inf inf]
# [inf inf inf]]
A = np.full_like(B, 7) # Заполнение аналога В
# [[7. 7. 7.]
# [7. 7. 7.]]
Примеры инициализации - 3B = np.identity(2) # Единичная матрица типа float (по умолчанию)# [[1. 0.]# [0. 1.]]B

Слайд 21Атрибуты массивов
Основным объектом NumPy является однородный многомерный массив numpy.ndarray элементов

одного типа.
атрибуты объектов ndarray:
['T', …, 'all', 'any', 'argmax', 'argmin', 'argpartition',

'argsort', 'astype', 'base', 'byteswap', 'choose', 'clip', 'compress', 'conj', 'conjugate', 'copy', 'ctypes', 'cumprod', 'cumsum', 'data', 'diagonal', 'dot', 'dtype', 'dump', 'dumps', 'fill', 'flags', 'flat', 'flatten', 'getfield', 'imag', 'item', 'itemset', 'itemsize', 'max', 'mean', 'min', 'nbytes', 'ndim', 'newbyteorder', 'nonzero', 'partition', 'prod', 'ptp', 'put', 'ravel', 'real', 'repeat', 'reshape', 'resize', 'round', 'searchsorted', 'setfield', 'setflags', 'shape', 'size', 'sort', 'squeeze', 'std', 'strides', 'sum', 'swapaxes', 'take', 'tobytes', 'tofile', 'tolist', 'tostring', 'trace', 'transpose', 'var', 'view']


Атрибуты массивовОсновным объектом NumPy является однородный многомерный массив numpy.ndarray элементов одного типа.атрибуты объектов ndarray:['T', …, 'all', 'any',

Слайд 22Наиболее важные атрибуты массивов

Наиболее важные атрибуты массивов

Слайд 23Примеры
A = np.array([[1,2],[3,4]])
[[1 2]
[3 4]] B = A.T # Транспонирование
[[1

3]
[2 4]]
A.nbytes # 16 – байт
A.ndim # 2 – размерность


A.shape # (2, 2) – форма
A.size # 4 – количество элементов

ПримерыA = np.array([[1,2],[3,4]])[[1 2] [3 4]] B = A.T 	# Транспонирование[[1 3] [2 4]]A.nbytes 	# 16 –

Слайд 24Создание массивов из существующих данных

Создание массивов из существующих данных

Слайд 25Примеры создания массивов
A = np.fromstring("1 2", dtype=int, sep=" ") #

[1 2]
А = np.array([1, 2, 3]) # [1 2 3]
A

= np.array([[1., 2], [0, 3]]) # [[1. 2.]
# [0. 3.]]
B = np.array(A, copy=True)
print(A is B) # False
D = np.array(A, copy=False) print(A is D) # True D[0, 0] = 7 print(A) # [[7. 2.]
# [0. 3.]]
print(B) # [[1. 2.]
# [0. 3.]]
print(D) # [[7. 2.]
# [0. 3.]]
F = np.copy(A) # [[7. 2.]
# [0. 3.]]
Примеры создания массивовA = np.fromstring(

Слайд 26Создание массивов с использованием функций
A = np.fromfunction(lambda i, j: i

== j, (3, 3), dtype=int) # Массив размерности 3×3
#

dtype – тип данных координат, подаваемых в функцию
# [[ True False False]
# [False True False]
# [False False True]]
A = np.fromfunction(lambda i, j: i*10 + j, (3, 3), dtype=int)
# [[ 0 1 2]
# [10 11 12]
# [20 21 22]]
Создание массивов с использованием функцийA = np.fromfunction(lambda i, j: i == j, (3, 3), dtype=int) # Массив

Слайд 27Создание массивов при помощи последовательностей

Создание массивов при помощи последовательностей

Слайд 28Примеры создания массивов с использованием последовательностей
it = (x*x for x

in range(5)) # итератор A = np.fromiter(it, float) # [ 0.

1. 4. 9. 16.]
A = np.arange(3.) # [0. 1. 2.]
A = np.arange(0,10,3) # [0 3 6 9]
A = np.linspace(0.0, 4, num=5) # [0. 1. 2. 3. 4.]
A = np.logspace(1, 5, num=5)
# array([1.e+01, 1.e+02, 1.e+03, 1.e+04, 1.e+05])
B = np.log10(A) # [1. 1.75 2.5 3.25 4. ]
A = np.geomspace(1, 4, num=5)
# [1. 1.41421356 2. 2.82842712 4. ]

Примеры создания массивов с использованием последовательностейit = (x*x for x in range(5)) 	# итератор A = np.fromiter(it,

Слайд 29meshgrid для построения графиков
import matplotlib.pyplot as plt x = np.arange(-10, 10,

0.1) y = np.arange(-10, 10, 0.1) xx, yy = np.meshgrid(x, y, sparse=True) z

= np.sin(xx**2 + yy**2) h = plt.contourf(x,y,z) plt.show()


Подробнее см. https://docs.scipy.org/doc/numpy/reference/routines.array-creation.html

meshgrid для построения графиковimport matplotlib.pyplot as plt x = np.arange(-10, 10, 0.1) y = np.arange(-10, 10, 0.1)

Слайд 30Доступ к элементам массива
В целом доступ и индексация аналогичны спискам.
A

= np.arange(10) # [0 1 2 3 4 5 6 7

8 9]
A[:2] # [0 1]
A[::-1] # [9 8 7 6 5 4 3 2 1 0]
A = np.array([[1, 5, 3, 0], [7, 2, 8, 1], [1, 6, 3, 7]])
B = A[:2, :3] # две строки и три столбца
# [[1 5 3]
# [7 2 8]]

Не забудьте, что В, это НЕ копия!
Поэтому присваивание B[0, 0] = 9
B: [[9 5 3] отразится и на А: [[9 5 3 0]
[7 2 8]] [7 2 8 1]
[1 6 3 7]]


Доступ к элементам массиваВ целом доступ и индексация аналогичны спискам.A = np.arange(10)	# [0 1 2 3 4

Слайд 31Базовые операции с массивами
Математические операции над массивами выполняются поэлементно.
a =

np.array([0, -1, -2, -3]) b = np.arange(4) c = a + b #

array([0, 0, 0, 0])
c = a / b # array([nan, -1., -1., -1.])
c = a + 1 # array([ 1, 0, -1, -2])
c = a < 0 # array([False, True, True, True])
Базовые операции с массивамиМатематические операции над массивами выполняются поэлементно.a = np.array([0, -1, -2, -3]) b = np.arange(4)

Слайд 32Операции с массивами-1

Операции с массивами-1

Слайд 33Примеры операций с массивами
Помимо метода copy (см. выше) можно копировать

массивы при помощи метода copyto
A = np.array([[1, 2, 3],

[11, 12, 13]]) B = np.empty_like(A)
# Массив В той же размерности, что и А np.copyto(B, A) # B: [[1, 2, 3], [11, 12, 13]])
np.ravel(A) # [ 1 2 3 11 12 13]
A.reshape(-1) # [ 1 2 3 11 12 13]
Фортрановский стиль хранения:
np.ravel(A, order='F') # [ 1 11 2 12 3 13]
A.flat[4] # 12

Примеры операций с массивамиПомимо метода copy (см. выше) можно копировать массивы при помощи метода copytoA = np.array([[1,

Слайд 34Примеры операций с массивами
A = np.arange(6).reshape((2, 3)) # [[0 1

2]
# [3 4 5]] B = np.transpose(A) # [[0 3]
# [1

4]
# [2 5]]
C = A.T # [[0 3]
# [1 4]
# [2 5]]
A = np.ones((2, 3, 4))
A.shape # Размерности = (2, 3, 4)
np.moveaxis(x, -1, 0).shape
# Переместить последнюю ось на 0 позицию
# (4, 2, 3)


Примеры операций с массивамиA = np.arange(6).reshape((2, 3)) # [[0 1 2]						# [3 4 5]]  B =

Слайд 35Операции с массивами-2

Операции с массивами-2

Слайд 36Примеры операций с массивами
A = [1, 2]
B = np.asarray(A) # [1

2]
A is B # False
a = np.array([1, 2])
np.asarray(a) is a # True
x

= np.array([[1, 2], [3, 4]])
m = np.asmatrix(x)
x[0, 1] = 8 # [[1 8]
# [3 4]]

Примеры операций с массивамиA = [1, 2]B = np.asarray(A)			# [1 2]A is B					# Falsea = np.array([1, 2])np.asarray(a)

Слайд 37Примеры слияния массивов
a = np.array([[1, 2], [3, 4]]) b = np.array([[10,

11]]) c = np.concatenate((a, b), axis=0) # [[ 1 2]
# [ 3

4]
# [10 11]]
d = np.concatenate((a, b.T), axis=1) # [[ 1 2 10]
# [ 3 4 11]]
e = np.concatenate((a, b), axis=None)
# [ 1 2 3 4 10 11]
Примеры слияния массивовa = np.array([[1, 2], [3, 4]]) b = np.array([[10, 11]]) c = np.concatenate((a, b), axis=0)	#

Слайд 38Слияние, разделение, повторение

Слияние, разделение, повторение

Слайд 39Примеры разделения массивов
x = np.arange(12.0) # [ 0. 1. 2.

… 7. 8. 9. 10. 11.] np.split(x, 3) # [array([0., 1.,

2., 3.]), array([4., 5., 6., 7.]), array([ 8., 9., 10., 11.])]
Если индекс секции представляет собой 1-мерный массив целых чисел, то его элементы показывают точки разбиения. Например, [2, 3] для axis=0 дадут разбиение:
ary[:2]
ary[2:3]
ary[3:]

np.split(x, [2, 3])
# [array([0., 1.]),
array([2.]),
array([ 3., 4., 5., 6., 7., 8., 9., 10., 11.])]

Примеры разделения массивовx = np.arange(12.0) # [ 0. 1. 2. … 7. 8. 9. 10. 11.] np.split(x,

Слайд 40Размножение элементов массивов
a = np.array([0, 1, 2])
np.tile(a, 3) # [0 1

2 0 1 2 0 1 2]
b = np.array([[1, 2],

[3, 4]]) c= np.tile(b, 2) # [[1 2 1 2]
# [3 4 3 4]]
a= np.repeat(2, 3) # [2 2 2]
c = np.repeat(b, 3, axis=1) # [[1 1 1 2 2 2]
# [3 3 3 4 4 4]]
c = np.repeat(b, 3, axis=0) # [[1 2]
# [1 2]
# [1 2]
# [3 4]
# [3 4]
# [3 4]]
Размножение элементов массивовa = np.array([0, 1, 2])np.tile(a, 3)			# [0 1 2 0 1 2 0 1 2]b

Слайд 41Вставка и удаление элементов; переразмеривание массивов

Вставка и удаление элементов; переразмеривание массивов

Слайд 42Примеры вставки и удаления-1
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
# array([[ 1,

2, 3, 4],
# [ 5, 6, 7,

8],
# [ 9, 10, 11, 12]]) b = np.delete(a, 1, 0) # array([[ 1, 2, 3, 4],
# [ 9, 10, 11, 12]])
a = np.array([[1,2], [3,4], [5,6]]) # array([[1, 2],
# [3, 4],
# [5, 6]])
b = np.insert(a, 1, 0) # array([1, 0, 2, 3, 4, 5, 6]) c = np.insert(a, 1, 7, axis=1) # array([[1, 7, 2],
# [3, 7, 4],
#[5, 7, 6]])

Примеры вставки и удаления-1a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])				# array([[ 1, 2, 3, 4],				#    [

Слайд 43Примеры вставки и удаления-2
a = [1, 2, 3] d = np.append(a,

[[4, 5, 6], [7, 8, 9]])
# array([1, 2, 3, 4,

5, 6, 7, 8, 9])
a = np.array([[1, 2], [3, 4], [5, 6]])
Добавляем строку (ось 0)
e = np.append(a, [[7, 8]], axis=0) # array([[1, 2],
# [3, 4],
# [5, 6],
# [7, 8]])
также см. метод concatenate
Примеры вставки и удаления-2a = [1, 2, 3] d = np.append(a, [[4, 5, 6], [7, 8, 9]])#

Слайд 44Примеры преобразований массивов
a=np.array([[0, 1], [10, 11]])
c = np.resize(a, (2, 4)) #

array([[ 0, 1, 10, 11],
#

[ 0, 1, 10, 11]])
a =np.arange(6).reshape((3, 2)) # array([[0, 1],
# [2, 3],
# [4, 5]])
Отражение по строке (ось 0)
b = np.flip(a, 0) # array([[4, 5],
# [2, 3],
# [0, 1]])
Отражение по столбцу (ось 1)
b = np.flip(a, 1) # array([[1, 0],
# [3, 2],
# [5, 4]])
Примеры преобразований массивовa=np.array([[0, 1], [10, 11]])c = np.resize(a, (2, 4))		# array([[ 0, 1, 10, 11],

Слайд 45Примеры прокрутки массивов
a = np.arange(10) #array([0, 1, 2, 3, 4,

5, 6, 7, 8, 9]) b = np.roll(a, 2) #array([8, 9, 0,

1, 2, 3, 4, 5, 6, 7])
b = np.reshape(a, (2, 5)) # array([[0, 1, 2, 3, 4],
# [5, 6, 7, 8, 9]]) c = np.roll(b, 1) # array([[9, 0, 1, 2, 3],
# [4, 5, 6, 7, 8]])
Строки:
c = np.roll(b, 1, axis=0) # array([[5, 6, 7, 8, 9],
# [0, 1, 2, 3, 4]])
Столбцы:
c = np.roll(b, 2, axis=1) # array([[3, 4, 0, 1, 2],
# [8, 9, 5, 6, 7]])
Примеры прокрутки массивовa = np.arange(10) #array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) b =

Слайд 46Примеры нахождения уникальных элементов
Уникальные элементы
a = np.array([[0, 1], [1, 7]]) b

= np.unique(a) # array([0, 1, 7])
Уникальные строки
a = np.array([[1, 0, 0],

[1, 0, 0], [2, 3, 4]]) b = np.unique(a, axis=0) # array([[1, 0, 0],
# [2, 3, 4]])
Уникальные столбцы
a = np.array([ [1, 1, 0], [1, 1, 0], [2, 2, 4]])
b = np.unique(a, axis=1) # array([[0, 1],
[0, 1],
[4, 2]])

Примеры нахождения уникальных элементовУникальные элементыa = np.array([[0, 1], [1, 7]]) b = np.unique(a)		# array([0, 1, 7])Уникальные строкиa

Слайд 47Операции ввода и вывода
Документацию по форматам файлов см. numpy.lib.format

Операции ввода и выводаДокументацию по форматам файлов см. numpy.lib.format

Слайд 48Текстовые и двоичные файлы

Текстовые и двоичные файлы

Слайд 49Линейная алгебра (numpy.linalg)

Линейная алгебра (numpy.linalg)

Слайд 50Линейная алгебра-2

Линейная алгебра-2

Слайд 51Линейная алгебра-3

Линейная алгебра-3

Слайд 52Математические функции-1

Математические функции-1

Слайд 53Математические функции-2

Математические функции-2

Слайд 54Математические функции-3
Остальные математические функции https://docs.scipy.org/doc/numpy/reference/routines.math.html

Математические функции-3Остальные математические функции https://docs.scipy.org/doc/numpy/reference/routines.math.html

Слайд 55Библиотека SciPy
https://docs.scipy.org/doc/scipy/reference/
Специальные функции (scipy.special)
Функции Бесселя
Интегрирование (scipy.integrate)
Оптимизация (scipy.optimize)
Интерполяция (scipy.interpolate)
Преобразования Фурье

(scipy.fftpack)
Обработка сигналов (scipy.signal)
Линейная алгебра (scipy.linalg)
Статистика (scipy.stats)
Многомерная обработка изображений (scipy.ndimage)
Файловый ввод-вывод

(scipy.io)



Библиотека SciPyhttps://docs.scipy.org/doc/scipy/reference/ Специальные функции (scipy.special)Функции БесселяИнтегрирование (scipy.integrate)Оптимизация (scipy.optimize)Интерполяция (scipy.interpolate)Преобразования Фурье (scipy.fftpack)Обработка сигналов (scipy.signal)Линейная алгебра (scipy.linalg)Статистика (scipy.stats)Многомерная обработка

Слайд 56Интегрирование-1

Интегрирование-1

Слайд 57Интегрирование-2

Интегрирование-2

Слайд 58Решение ОДУ

Решение ОДУ

Слайд 59Оптимизация

Оптимизация

Слайд 60Ограничения
Ограничения передаются, чтобы минимизировать функцию как отдельный объект или как

список объектов из следующих классов:
NonlinearConstraint(fun, lb, ub [, jac,…]) –

Нелинейное ограничение на переменные.
LinearConstraint (A, lb, ub [, keep_feasible]) –Линейное ограничение на переменные.
Простые связанные ограничения обрабатываются отдельно, и для них есть специальный класс:
Bounds(lb, ub [, keep_feasible]) – Ограничение границ для переменных.
ОграниченияОграничения передаются, чтобы минимизировать функцию как отдельный объект или как список объектов из следующих классов:NonlinearConstraint(fun, lb, ub

Слайд 61Случайный поиск, МНК и пр.

Случайный поиск, МНК и пр.

Слайд 62Нахождение корней нелинейных уравнений

Нахождение корней нелинейных уравнений

Слайд 63Нахождение корней-2
См. остальные функции раздела https://docs.scipy.org/doc/scipy/reference/optimize.html#module-scipy.optimize

Нахождение корней-2См. остальные функции раздела https://docs.scipy.org/doc/scipy/reference/optimize.html#module-scipy.optimize

Слайд 64Модуль pickle
Модуль pickle реализует мощный алгоритм сериализации и десериализации
Pickling –

процесс преобразования объекта Python в поток байтов (сериализация), а unpickling

– обратная операция (десериализация), в результате которой поток байтов преобразуется обратно в Python-объект. Поток байтов легко можно записать в файл и модуль pickle широко применяется для сохранения и загрузки сложных объектов в Python.
Модуль pickleМодуль pickle реализует мощный алгоритм сериализации и десериализацииPickling – процесс преобразования объекта Python в поток байтов

Слайд 65С чем работает модуль pickle
Какие типы данных Pickle умеет запаковывать?


None, True, False
Строки (обычные или Unicode)
Стандартные числовые типы данных
Словари, списки,

кортежи
Функции
Классы

С чем работает модуль pickleКакие типы данных Pickle умеет запаковывать? None, True, FalseСтроки (обычные или Unicode)Стандартные числовые

Слайд 66Функции модуля pickle

Функции модуля pickle

Слайд 67Пример записи/считывания
d = {"a": [1, 2.0, 3, 4+6j],

"b": ("строка", b"byte string"), "c": {None, True, False}

} fil = "dt.pickle" with open(fil, "wb") as f: pickle.dump(d, f) with open(fil, "rb") as f: d_new = pickle.load(f) print(d_new)
# {'a': [1, 2.0, 3, (4+6j)], 'b': ('строка', b'byte string'), 'c': {False, True, None}}


Внимание! Не загружайте pickle-файлы из неавторизованных источников!
Документация https://docs.python.org/3/library/pickle.html
Пример записи/считыванияd = {

Слайд 68Спасибо за внимание

Спасибо за внимание

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика