Основы работы с библиотекой NumPy
Покупка
Новинка
Тематика:
Математическое моделирование
Год издания: 2024
Кол-во страниц: 112
Дополнительно
Вид издания:
Учебно-методическая литература
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7882-3470-0
Артикул: 853744.01.99
Рассмотрены возможности библиотеки NumPy в области решения задач линейной алгебры, работы с массивами и генерирования случайных чисел и последовательностей. Для оценки уровня усвоения студентами пройденного материала предложены варианты заданий для самостоятельной работы.
Предназначено для бакалавров, обучающихся по направлениям подготовки 09.03.02 «Информационные системы и технологии», 22.03.01 «Материаловедение и технологии материалов», 28.03.02 «Наноинженерия», 18.03.01 «Химическая технология», 29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности», изучающих дисциплины «Алгебра и геометрия», «Информатика», «Информационные технологии», «Вычислительная математика», «Теория вероятностей и математическая статистика».
Подготовлено на кафедре информатики и прикладной математики.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.02: Информационные системы и технологии
- 18.03.01: Химическая технология
- 22.03.01: Материаловедение и технологии материалов
- 28.03.02: Наноинженерия
- 29.03.04: Технология художественной обработки материалов
- 29.03.05: Конструирование изделий легкой промышленности
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации Казанский национальный исследовательский технологический университет А. Н. Титов, Р. Ф. Тазиева ОСНОВЫ РАБОТЫ С БИБЛИОТЕКОЙ NUMPY Учебно-методическое пособие Казань Издательство КНИТУ 2024
УДК 004.42(075) ББК 32.97я7 Т45 Печатается по решению редакционно-издательского совета Казанского национального исследовательского технологического университета Рецензенты: д-р пед. наук, доц. Ю. В. Торкунова канд. экон. наук, доц. О. С. Семичева Т45 Титов А. Н. Основы работы с библиотекой NumPy : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева; Минобрнауки России, Казан. нац. исслед. технол. ун-т. – Казань : Изд-во КНИТУ, 2024. – 112 с. ISBN 978-5-7882-3470-0 Рассмотрены возможности библиотеки NumPy в области решения задач линейной алгебры, работы с массивами и генерирования случайных чисел и последовательностей. Для оценки уровня усвоения студентами пройденного материала предложены варианты заданий для самостоятельной работы. Предназначено для бакалавров, обучающихся по направлениям подготовки 09.03.02 «Информационные системы и технологии», 22.03.01 «Материаловедение и технологии материалов», 28.03.02 «Наноинженерия», 18.03.01 «Химическая технология», 29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности», изучающих дисциплины «Алгебра и геометрия», «Информатика», «Информационные технологии», «Вычислительная математика», «Теория вероятностей и математическая статистика». Подготовлено на кафедре информатики и прикладной математики. УДК 004.42(075) ББК 32.97я7 ISBN 978-5-7882-3470-0 © Титов А. Н., Тазиева Р. Ф., 2024 © Казанский национальный исследовательский технологический университет, 2024 2
О Г Л А В Л Е Н И Е Введение .................................................................................................................... 5 1. NUMPY. НАЧАЛО РАБОТЫ .............................................................................. 7 1.1. Объекты библиотеки NumPy .................................................................. 10 1.2. Типы данных ............................................................................................ 15 1.3. Вывод массивов на экран ........................................................................ 16 2. РАБОТА С МАССИВАМИ ............................................................................... 19 2.1. Атрибуты массивов ................................................................................. 19 2.2. Создание массивов................................................................................... 20 2.3. Доступ к элементам массива .................................................................. 32 2.4. Сортировка элементов массива .............................................................. 37 2.5. Операции над множествами из массивов .............................................. 42 2.6. Преобразования массивов. Функции ravel(), reshape(), resize(), transpose(), swapaxes() и rot90() ..................................................................... 46 2.7. Удаление, добавление строк и столбцов ............................................... 48 2.8. Разбиение массива ................................................................................... 53 2.9. Математические операции над элементами массива ........................... 54 2.10. Логические операции ............................................................................ 57 2.11. Статистические операции ..................................................................... 59 2.12. Строковые функции ............................................................................... 74 2.13. Дополнительные возможности. Чтение данных из файла ................ 78 3. МАТРИЧНЫЕ ОПЕРАЦИИ С МАССИВАМИ. РАБОТА С МОДУЛЕМ LINALG .................................................................................................................... 81 3.1. Умножение векторов и матриц .............................................................. 81 3.2. Работа с модулем numpy.linalg ............................................................... 84 3
4. ГЕНЕРИРОВАНИЕ СЛУЧАЙНЫХ ЧИСЕЛ ................................................... 93 4.1. Генерирование чисел из дискретных распределений .......................... 93 4.2. Генерирование чисел из непрерывных распределений ....................... 97 4.3. Генерирование случайной выборки из заданного массива ............... 102 Задания для самостоятельной работы ................................................................ 107 Литература ............................................................................................................. 110 4
В В Е Д Е Н И Е Главным разработчиком библиотек NumPy и SciPy, предназначенных для проведения научных и технических вычислений, является Трэвис Олифант (Travis Oliphant). NumPy (Numerical Python) – это библиотека с открытым исходным кодом, отделившаяся от проекта SciPy. NumPy является наследником пакетов Numeric и NumArray и была выпущена в 2005 году. Основана NumPy на библиотеке LAPAC, которая написана на Fortran. Официальный сайт библиотеки – www.numpy.org. В силу того что NumPy базируется на Fortran, это быстрая библиотека. Библиотека поддерживает векторные операции с многомерными массивами. Эти два обстоятельства делают ее крайне удобной. Кроме базового варианта (многомерные массивы в базовом варианте), NumPy включает в себя набор модулей для решения специализированных задач: – модуль numpy.linalg реализует операции линейной алгебры (простое умножение векторов и матриц есть в базовом варианте); – модуль numpy.random реализует функции для работы со случайными величинами; – модуль numpy.fft реализует прямое и обратное преобразование Фурье. NumPy активно используется в сочетании с различными библиотеками, такими как Pandas, Scipy, Matplotlib, scikit-learn и т. д. Пособие включает в себя 4 главы. В первой рассмотрены объекты библиотеки и типы данных, предоставляемые библиотекой, приведен список основных математических функций. Во второй главе показано, как можно создать основной объект библиотеки – n-мерный массив, приведены его атрибуты. Показано, как можно осуществить доступ к элементам массива, как проводить операции над массивами: арифметические, логические, статистические. Рассмотрены вопросы преобразования массивов: удаления и добавления строк и столбцов, сортировки массивов, разбиения его на несколько частей. Третья глава посвящена работе с модулем numpy.linalg. Показано, как можно умножать вектора и матрицы, вычислять определитель матрицы, ее ранг и норму, собственные значения и собственные вектора, находить обратную матрицу, решать системы линейных алгебраических уравнений (СЛАУ), находить приближенное решение СЛАУ методом наименьших квадра5
тов в случае, когда система несовместна. На большом количестве примеров продемонстрировано назначение параметров каждого рассмотренного метода или функции. В четвертой главе рассмотрена работа с модулем numpy.random: генерирование случайных чисел с заданным дискретным или непрерывным законом распределения, генерирование случайной выборки заданного объема из имеющегося массива. Материал, изложенный в пособии, может быть использован при проведении лабораторных занятий по информационным технологиям, обработке экспериментальных данных, линейной алгебре, теории вероятностей и математической статистике. Используемая в пособии версия NumPy – 1.23.3. Вся работа была проведена в Jupyter Notebook и Google Colab, кроме специально оговоренных случаев. 6
. N U M P Y . Н А Ч А Л О Р А Б О Т Ы Для работы с библиотекой NumPy ее нужно установить на компьютер. Некоторые среды разработки Python, такие как, например, Google Colab, уже включают в себя различные библиотеки, в том числе и NymPy. Их устанавливать не надо, а следует только импортировать. Проверить, установлена ли данная библиотека (модуль), можно, набрав в командной строке pip freeze. Получится список, аналогичный приведенному на рис. 1.1. Рис. 1.1. Список установленных библиотек Python Если в этом списке нет нужной библиотеки, установить ее в Python можно несколькими способами. Самый простой – установить библиотеку из репозитория PyPI (Python Package Index). Репозиторий – это место, где хранятся и поддерживаются какие-либо данные. В Python это коллекция дополнительных библиотек, хранящаяся на сервере. В настоящий момент количество библиотек в репозитории составляет более 400 тысяч. 7
Для установки библиотек из репозитория необходимо подключение к сети Интернет. Далее в консоли (терминале) нужно выполнить команду: pip install <название библиотеки>. Установить библиотеку NumPy можно командой pip install numpy После ввода команды начнется загрузка установочного пакета и дополнительных библиотек, от которых зависит NumPy. Затем начнется процесс установки. Если установка пройдет успешно, в командной строке появится сообщение: Successfully installed numpy По умолчанию установится последняя версия библиотеки. Узнать версию, если вы работаете в Jupyter Notebook или в другой среде разработки, можно, выполнив команды import numpy as np # импорт библиотеки np.version.version В программе обращаться к NumPy можно по псевдониму np. Это упростит чтение кода. Такой импорт широко используется сообществом программистов, поэтому рекомендуется его придерживаться, чтобы код был понятен каждому. С помощью команды from можно импортировать либо все функции (методы) библиотеки (символ *), либо лишь некоторые из них (например, sin, cos). Воспользоваться какойлибо функцией библиотеки, например вычислить sin(3), можно одним из способов: import numpy; y=numpy.sin(3); y import numpy as np; y=np.sin(3); y from numpy import sin; y=sin(3); y from numpy import * ; y=sin(3); y import numpy as abc; y=abc.sin(3); y Использовать abc или любое другое имя вместо np не рекомендуется. 8
Набрав после импортирования библиотеки в строке ввода редактора IDLE np. и нажав клавишу <Tab>, получим отображения содержимого пространства имен NumPy: Выбрав, например, пункты add_newdoc_ufunc и count_nonzero, получим следующую информацию: Для отображения встроенной документации можно набрать и выполнить строки: import numpy as np ; np? В результате получим краткую характеристику библиотеки (модуля), фрагмент которой представлен далее: Type: module String form: <module 'numpy' from 'C:\\Users\\Администратор\\ AppData\\Local\\Programs\\Python\\Python310\\ lib \\site-packages\\ numpy\\__init__.py'> File: c:\users\администратор\appdata\local\programs\python\python310\ lib\site-packages\numpy\__init__.py Docstring: NumPy Provides 1. An array object of arbitrary homogeneous items 9
2. Fast mathematical operations over arrays 3. Linear Algebra, Fourier Transforms, Random Number Generation How to use the documentation Более детальную документацию вместе с учебниками и другими ресурсами можно найти по адресу – https://numpy.org/. 1 . 1 . О б ъ е к т ы б и б л и о т е к и N u m P y Основным объектом NumPy является однородный многомерный массив (в NumPy он называется NumPy.ndarray). Многомерность массива означает, что у него может быть несколько осей (axes). Число осей называется рангом (rank). Массив в Python – это упорядоченная структура данных, используемая для хранения однотипных объектов. По своему функциональному назначению массивы схожи со списками, но обладают некоторыми ограничениями на тип и размер входных данных. Главным отличием списка и массива является то, что списки могут хранить разнородные данные, а массивы – только данные одного типа. Такое ограничение позволяет многократно увеличить скорость вычислений, а также избежать ненужных ошибок с приведением и обработкой типов. Список – это динамическая структура. Размер списка можно изменять во время выполнения программы (удалять, добавлять элементы), чего нельзя делать с массивами. Следует также помнить, что одни и те же операции со списками и массивами могут привести к разным результатам. Массивы NumPy оптимизированы для сложных математических и статистических операций. С массивами можно проводить числовые операции с большим объемом информации в разы быстрее и намного эффективнее, чем со списками. В NumPy можно выделить три вида массивов: – произвольные многомерные массивы (array); – матрицы (matrix) – двумерные квадратные массивы, для которых определены матричные операции. Для работы с матрицами можно вместо обычных массивов создавать объекты, принадлежащие к классу matrix; – сетки (grid) – массивы, в которых записаны значения координат точек сетки (обычно ортогональной). Сетки позволяют удобно вычислять значение функций многих переменных. 10