Линейная алгебра на Python. [Урок 1]. Задание Матрицы.
Эта статья открывает список уроков на тему “Линейная алгебра с примерами на Python“. Мы постараемся рассказать о базовых понятиях линейной алгебры, которые могут быть полезны тем, кто занимается машинным обучением и анализом данных, и будем сопровождать все это примерами на языке Python.
- Матрицы
- Виды матриц и способы их создания в Python
- Вектор
- Вектор-строка
- Вектор-столбец
- Квадратная матрица
- Диагональная матрица
- Единичная матрица
- Нулевая матрица
- Задание матрицы в общем виде
Матрицей в математике называют объект, записываемый в виде прямоугольной таблицы, элементами которой являются числа (могут быть как действительные, так и комплексные). Пример матрицы приведен ниже.
\(M\;=\;\begin{pmatrix}1&3&5\\7&2&4\end{pmatrix}\)
В общем виде матрица записывается так:
\(M=\begin{pmatrix}a_{11}&a_{12}&…&a_{1n}\\a_{21}&a_{22}&…&a_{2n}\\…&…&…&…\\a_{m1}&a_{m2}&…&a_{mn}\end{pmatrix}\)
Представленная выше матрица состоит из i-строк и j-столбцов. Каждый ее элемент имеет соответствующее позиционное обозначение, определяемое номером строки и столбца на пересечении которых он расположен: \(a_{ij}\)- находится на i-ой строке и j-м столбце.
Важным элементом матрицы является главная диагональ, ее составляют элементы, у которых совпадают номера строк и столбцов.
Виды матриц и способы их создания в PythonМатрица в Python – это двумерный массив, поэтому задание матриц того или иного вида предполагает создание соответствующего массива. Для работы с массивами в Python используется тип данных список (англ. list). Но с точки зрения представления матриц и проведения вычислений с ними списки – не очень удобный инструмент, для этих целей хорошо подходит библиотека Numpy, ее мы и будем использовать в дальнейшей работе.
Напомним, для того, чтобы использовать библиотеку Numpy ее нужно предварительно установить, после этого можно импортировать в свой проект. По установке Numpy можно подробно прочитать в разделе “Установка библиотеки Numpy” из введения. Для того чтобы импортировать данный модуль, добавьте в самое начало программы следующую строку
import numpy as np
Если после импорта не было сообщений об ошибке, то значит все прошло удачно и можно начинать работу. Numpy содержит большое количество функций для работы с матрицами, которые мы будем активно использовать. Обязательно убедитесь в том, что библиотека установлена и импортируется в проект без ошибок.
Рассмотрим, различные варианты матриц и способы их задания в Python.
ВекторВектором называется матрица, у которой есть только один столбец или одна строка. Более подробно свойства векторов, их геометрическая интерпретация и операции над ними будут рассмотрены в “Главе 2 Векторная алгебра”.
Вектор-строкаВектор-строка имеет следующую математическую запись.
\(v=(1\;2)\)
Такой вектор в Python можно задать следующим образом.
>>> v_hor_np = np.array([1, 2]) >>> print(v_hor_np ) [1 2]
Если необходимо создать нулевой или единичный вектор, то есть вектор, у которого все элементы нули либо единицы, то можно использовать специальные функции из библиотеки Numpy.
Создадим нулевую вектор-строку размера 5.
>>> v_hor_zeros_v1 = np.zeros((5,)) >>> print(v_hor_zeros_v1 ) [0. 0. 0. 0. 0.]
В случае, если требуется построить вектор-строку так, чтобы она сама являлась элементом какого-то массива, это нужно для возможности транспонирования матрицы (см. раздел “1.3 Транспонирование матрицы”), то данную задачу можно решить так.
>>> v_hor_zeros_v2 = np.zeros((1, 5)) >>> print(v_hor_zeros_v2 ) [[0. 0. 0. 0. 0.]]
Построим единичную вектор-строку в обоих из представленных для нулевого вектора-строки форм.
>>> v_hor_one_v1 = np.ones((5,)) >>> print(v_hor_one_v1) [1. 1. 1. 1. 1.]
>>> v_hor_one_v2 = np.ones((1, 5)) >>> print(v_hor_one_v2) [[1. 1. 1. 1. 1.]]Вектор-столбец
Вектор-столбец имеет следующую математическую запись.
\(v=\begin{pmatrix}1\\2\end{pmatrix}\)
В общем виде вектор столбец можно задать следующим образом.
>>> v_vert_np = np.array([[1], [2]]) >>> print(v_vert_np) [[1] [2]]
Рассмотрим способы создания нулевых и единичных векторов-столбцов. Построим нулевой вектор-столбец.
>>> v_vert_zeros = np.zeros((5, 1)) >>> print(v_vert_zeros) [[0. ] [0.] [0.] [0.] [0.]]
Единичный вектор-столбец можно создать с помощью функции ones().
Квадратная матрица>>> v_vert_ones = np.ones((5, 1)) >>> print(v_vert_ones) [[1.] [1.] [1.] [1.] [1.]]
Довольно часто, на практике, приходится работать с квадратными матрицами. Квадратной называется матрица, у которой количество столбцов и строк совпадает. В общем виде они выглядят так.
\(Msqr=\begin{pmatrix}a_{11}&a_{12}&…&a_{1n}\\a_{21}&a_{22}&…&a_{2n}\\…&…&…&…\\a_{n1}&a_{n2}&…&a_{nn}\end{pmatrix}\)
Создадим следующую матрицу.
\(Msqr=\begin{pmatrix}1&2&3\\4&5&6\\7&8&9\end{pmatrix}\)
В Numpy можно создать квадратную матрицу с помощью метода
>>> m_sqr_arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) >>> print(m_sqr_arr) [[1 2 3] [4 5 6] [7 8 9]]
Как вы уже наверное заметили, аргументом функции np. array() является список Python, его можно создать отдельно и передать в функцию.
>>> m_sqr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] >>> m_sqr_arr = np.array(m_sqr) >>> print(m_sqr_arr) [[1 2 3] [4 5 6] [7 8 9]]
Но в Numpy
>>> m_sqr_mx = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) >>> print(m_sqr_mx) [[1 2 3] [4 5 6] [7 8 9]]
Также доступен стиль Matlab, когда между элементами ставятся пробелы, а строки разделяются точкой с запятой, при этом такое описание должно быть передано в виде строки.
>>> m_sqr_mx = np.matrix('1 2 3; 4 5 6; 7 8 9') >>> print(m_sqr_mx) [[1 2 3] [4 5 6] [7 8 9]]Диагональная матрица
Особым видом квадратной матрицы является
\(Mdiag=\begin{pmatrix}a_{11}&0&…&0\\0&a_{22}&…&0\\…&…&…&…\\0&0&…&a_{nn}\end{pmatrix}\)
Диагональную матрицу можно построить вручную, задав только значения элементам на главной диагонали.
>>> m_diag = [[1, 0, 0], [0, 5, 0], [0, 0, 9]] >>> m_diag_np = np.matrix(m_diag) >>> print(m_diag_np) [[1 0 0] [0 5 0] [0 0 9]]
Библиотека Numpy предоставляет инструменты, которые могут упростить построение такой матрицы.
Первый вариант подойдет в том случае, если у вас уже есть матрица, и вы хотите сделать из нее диагональную. Создадим матрицу размера 3 3.
>>> m_sqr_mx = np.matrix('1 2 3; 4 5 6; 7 8 9')
Извлечем ее главную диагональ.
>>> diag = np.diag(m_sqr_mx) >>> print(diag) [1 5 9]
Построим диагональную матрицу на базе полученной диагонали.
>>> m_diag_np = np.diag(np.diag(m_sqr_mx)) >>> print(m_diag_np) [[1 0 0] [0 5 0] [0 0 9]]
Второй вариант подразумевает построение единичной матрицы, ей будет посвящен следующий параграф.
Единичная матрицаЕдиничной матрицей называют такую квадратную матрицу, у которой элементы главной диагонали равны единицы, а все остальные нулю.
\(E=\begin{pmatrix}1&0&…&0\\0&1&…&0\\…&…&…&…\\0&0&…&1\end{pmatrix}\)
Создадим единичную матрицу на базе списка, который передадим в качестве аргумента функции matrix().
>>> m_e = [[1, 0, 0], [0, 1, 0], [0, 0, 1]] >>> m_e_np = np.matrix(m_e) >>> print(m_e_np) [[1 0 0] [0 1 0] [0 0 1]]
Такой способ не очень удобен, к счастью для нас, для построения такого типа матриц в библиотеке Numpy есть специальная функция – eye().
>>> m_eye = np.eye(3) >>> print(m_eye) [[ 1. 0. 0.] [ 0. 1. 0.] [ 0. 0. 1.]]
В качестве аргумента функции передается размерность матрицы, в нашем примере – это матрица 3 3. Тот же результат можно получить с помощью функции identity()
>>> m_idnt = np.identity(3) >>> print(m_idnt) [[ 1. 0. 0.] [ 0. 1. 0.] [ 0. 0. 1.]]Нулевая матрица
У нулевой матрицы все элементы равны нулю.
\(Z=\begin{pmatrix}0&0&…&0\\0&0&…&0\\…&…&…&…\\0&0&…&0\end{pmatrix}\)
Пример того, как создать такую матрицу с использованием списков, мы приводить не будем, он делается по аналогии с предыдущим разделом. Что касается Numpy, то в составе этой библиотеки есть функция zeros(), которая создает нужную нам матрицу.
>>> m_zeros = np.zeros((3, 3)) >>> print(m_zeros) [[ 0. 0. 0.] [ 0. 0. 0.] [ 0. 0. 0.]]
В качестве параметра функции zeros() передается размерность требуемой матрицы в виде кортежа из двух элементов, первый из которых – число строк, второй – столбцов. Если функции zeros() передать в качестве аргумента число, то будет построен нулевой вектор-строка, это мы делали в параграфе, посвященном векторам.
Задание матрицы в общем видеЕсли у вас уже есть данные о содержимом матрицы, то создать ее можно используя списки Python или функцию matrix() из библиотеки Numpy.
>>> m_mx = np.matrix('1 2 3; 4 5 6') >>> print(m_mx) [[1 2 3] [4 5 6]]
Если же вы хотите создать матрицу заданного размера с произвольным содержимым, чтобы потом ее заполнить, проще всего для того использовать функцию zeros(), которая создаст матрицу заданного размера, заполненную нулями.
>>> m_var = np.zeros((2, 5)) >>> print(m_var) [[ 0. 0. 0. 0. 0.] [ 0. 0. 0. 0. 0.]]P.S.
Вводные уроки по “Линейной алгебре на Python” вы можете найти соответствующей странице нашего сайта. Все уроки по этой теме собраны в книге “Линейная алгебра на Python”.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. Для начала вы можете познакомиться с вводными уроками. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Матрица идентификации NumPy | Узнайте, как работает матрица идентификации NumPy?
Обновлено 15 апреля 2023 г.
Идентификационная матрица NumPy — это встроенная работа NumPy, которая используется для восстановления структуры, т. е. 2D-кластера, имеющего 1 в его основном перекосе и 0 в другом месте. Работа identity() описана в NumPy, которую можно импортировать как импорт NumPy как np, и мы можем создавать многомерные представления и делать другие числовые измерения с помощью NumPy. Кластер идентичности представляет собой квадратную экспозицию с единицами на первом наклоне. Работа Python identity() возвращает показатель личности. Количество строк (и разделов) в n x n yield. Информационный вид доходности.
Синтаксис и параметры
NumPy.identity(dtype=None,n)
Где
‘n’ представляет количество строк и столбцов в матрице идентификации NumPy.
Dtype представляет тип данных объекта, который по умолчанию берется как плавающий.
Возвращает кластер ndarray n x n с фундаментальным уклоном, установленным на один и все разные компоненты 0.
Как работает идентификационная матрица NumPy?
Теперь мы видим различные примеры того, как идентификационная матрица NumPy работает в Python.
Пример #1
Использование идентификационной матрицы NumPy для определения значений матрицы
Код:
import numpy as geek p = geek.identity(3, dtype = float) print("Матрица p : \n", p) s = geek.identity(6) print("\nMatrix s : \n", s)
Вывод:
В приведенной выше программе мы сначала импортируем библиотеку NumPy как гик и определяем матрицы s и p. После определения матриц мы хотели бы напечатать значения матриц, и именно по этой причине мы используем матричную функцию identity() для смещения значений матриц столько раз, сколько мы упомянули бы в программе. Следовательно, программа реализована, и результат показан на снимке выше.
Пример #2
Использование идентификационной матрицы NumPy для поиска значений матрицы нескольких массивов n*n
Код:
import numpy as np s = np.identity(3, dtype=int) print("Матрица s : \n", s) р = np.identity (4) print("\nМатрица p : \n", p) а = np.identity (4, dtype = с плавающей запятой) print("\nМатрица а : \n", а) n = np.identity(4, dtype=str) print("\nMatrix n : \n", n)
Вывод:
В приведенной выше программе у нас есть матрицы 2*2,3*3,4*4, и мы импортируем NumPy как np и реализовать значения всех этих значений матрицы. Затем мы используем идентификационную матрицу NumPy для предоставления значений для типов данных и, наконец, реализуем значения на основе заданного количества раз. Следовательно, программа реализована, и результат показан на снимке выше.
В первой емкости количество строк и секций было 2. Таким образом, была показана решетка 2 X 2, имеющая принцип перекоса с значением 1 с возвращаемым типом как int. Здесь значения дрейфа были возвращены, поскольку характерная работа имеет тип возврата на берег, как само собой разумеющееся. Во второй емкости число линий равнялось 3, а сечение равнялось 3. Вдоль этих линий была показана сеть 3 X 3, имеющая первичный перекос как 1 с типом возврата как на плаву.
В третьей емкости количество строк было 3, а секция была 3, поэтому была показана структура 3 X 3, имеющая основной угол в углу как 1 с возвращаемым типом в виде строки. Более того, у истощенных персонажей были введены различные качества, которые изображают уважение, равное нулю.
В четвертой емкости количество строк было 3, а сегмента было 3. Таким образом, была показана сетка 3 X 3, имеющая исходный наклон 1 с возвращаемым типом в виде строки.
NumPy — это пакет для логической регистрации, который поддерживает удивительный N-мерный выставочный объект. NumPy дает многомерный кластер чисел, который на самом деле является статьей. Для увеличения двух фреймворков мы используем технику speck(). Ознакомьтесь с тем, как работает numpy.dot. * используется для увеличения кластера (увеличения связанных компонентов двух экспонатов), а не дублирования решетки. Как и записи, мы можем получить доступ к сетевым компонентам, используя список. NumPy, который представляет Numerical Python, представляет собой библиотеку, состоящую из многомерных выставочных объектов и наборов расписаний для обработки этих кластеров. Используя NumPy, можно выполнять числовые и интеллектуальные процедуры на выставках.
Заключение
Таким образом, в заключение я хотел бы сказать, что NumPy является лучшей библиотекой для комплексного управления экспонатами. Рассчитывать экспонаты с помощью библиотек NumPy чрезвычайно просто. Кластерное управление в какой-то степени простое, но я вижу множество новых учеников или умеренных дизайнеров, обнаруживающих проблемы в управлении решетками. Транспонирование — это еще одна структура, возникающая в результате того, что все компоненты линий присутствуют в сегменте, а вредная привычка — наоборот. Вы можете обнаружить перевод сети, используя матричную переменную T. Например, в этой ситуации мне нужно отобразить матрицу 2. Структура обычно используется исследователем информации для управления информацией. После прочтения этого учебного упражнения, я надеюсь, вы сможете управлять фреймворком.
Рекомендуемые статьи
Это руководство по матрице идентификации NumPy. Здесь мы обсудим, как работает идентификационная матрица NumPy, а также синтаксис и параметры. Вы также можете ознакомиться со следующими статьями, чтобы узнать больше:
- NumPy fft
- NumPy.argmax()
- NumPy Раунд
- numpy.dot ()
Матрица идентификации NumPy
Python9 месяцев назад
Омар Фарук
Матрица идентичности NumPy — это функция, которая возвращает матрицу идентичности на выходе с учетом переданных ей параметров. Единичная матрица — это тип матрицы, которая имеет положительное вещественное число, например «1», на диагонали (основной), а все остальные элементы в этой матрице равны нулю. Такие матрицы можно использовать для представления математического уравнения системы. Кроме того, единичные матрицы можно использовать для нахождения обратной матрицы. Эта матрица при умножении сама на себя дает такую же матрицу, как тождество. Есть много приложений этой матрицы, которые применяются к различным инженерным приложениям. NumPy — это библиотека, представленная платформой Python. Эта библиотека в основном занимается математическими вычислениями, статистическими операциями и многомерными массивами и матрицами. ПроцедураМы следуем последовательной процедуре, чтобы дать подробное объяснение темы «Идентификация Numpy» в этой конкретной статье. Мы даем исчерпывающее объяснение синтаксиса матрицы идентификации NumPy. Чтобы глубже понять эту функцию, мы попытаемся реализовать различные выдающиеся примеры, связанные с матрицей идентификации NumPy. Язык программирования, сценарий которого мы будем использовать для реализации матрицы идентичности, — «Python».
СинтаксисМы никогда не сможем реализовать какую-либо функцию, если у нас нет предварительных знаний об основных параметрах этой функции. Точно так же мы должны получить хорошее представление о матричной функции идентичности. Синтаксис этой конкретной функции можно описать двумя способами. Оба эти способа являются модификациями друг друга. Основной синтаксис функции идентификации вместе с ее параметром обсуждается ниже:
$ np. Удостоверение (n)
$ np. Идентификатор (n, dtype)
На основе двух ранее упомянутых синтаксисов для вызова функции идентификации имеется один параметр «n», который является общим для обоих методов. Этот параметр «n» должен явно принимать размеры или порядок единичной матрицы, которые мы хотим, чтобы функция возвращала в качестве вывода. Это «n» может быть любым положительным действительным числом. Затем идет еще один параметр, описанный во втором методе как «dtype». Этот dtype является дополнительным параметром, и его обязательность может быть выбрана как необязательная или обязательная в зависимости от наших требований. Тип dtype — это тип данных элементов, которые мы хотим разместить на главной диагонали и других элементах нашей матрицы идентичности. Этот тип данных может быть целочисленным, плавающим, двойным, строковым и т. д.
Пример 1Использовать функцию матрицы идентичности с библиотекой NumPy довольно просто. Здесь, в этом примере, мы используем первый метод, который мы обсуждали ранее в статье под заголовком «Синтаксис». Чтобы реализовать эту функцию, мы должны сначала открыть наши компиляторы Python и убедиться, что мы установили в них все необходимые пакеты, чтобы мы могли позже импортировать библиотеки из этих пакетов в наш код. Поскольку тождество является косвенной матрицей, мы имеем дело с матрицей. Чтобы объявить матрицу, воспользуемся помощью библиотеки «NumPy».
У нас есть два варианта импорта NumPy: либо мы можем просто использовать numpy как numpy, либо использовать псевдоним для NumPy. Наиболее распространенная практика по соглашению заключается в том, что мы используем префикс вместо вызова самого NumPy, поэтому «импортируйте NumPy как np». Теперь мы используем это «np» для вызова функции матрицы идентичности. Чтобы заставить его работать, мы вызываем функцию «np. Тождество (н)». «n» — это входной аргумент для этой функции, и он представляет размерность матрицы единичного квадрата. В этом примере мы создаем квадратную единичную матрицу порядка 3 × 3, что означает, что единичная матрица имеет три строки и три столбца. Затем мы пытаемся отобразить вывод, вызвав метод «print()».
import numpy as np
# объявление единичной матрицы размером 3×3 упомянутый код и вывод кода, который возвращает единичную матрицу, имеющую три столбца и три строки. Эта единичная матрица имеет «1» на своей главной диагонали (поскольку этот метод принимает тип данных как число с плавающей запятой по умолчанию), а остальные элементы матрицы равны нулю.
В предыдущем примере мы реализовали пример создания единичной матрицы с помощью первого метода, описанного в разделе «Синтаксис». Во втором примере используется второй метод для функции идентификации. Для этого мы импортируем NumPy с префиксом «np». Теперь мы используем этот np в качестве замены NumPy всякий раз, когда мы вызываем любую функцию, которая вызывает с ним NumPy. Мы создаем единичную матрицу, вызывая функцию «np. Идентичность (n, dtype)». Число n матрицы равно 5, что означает, что единичная матрица состоит из пяти строк и пяти столбцов. И мы устанавливаем dtype на «плавающий», что означает, таким образом, что основные диагональные элементы единичной матрицы имеют тип данных с плавающей запятой. Затем выводим матрицу с помощью функции «print()». Мы можем скопировать и выполнить следующий код Python, чтобы создать матрицу идентичности и проверить результаты.
import numpy as np
# объявление единичной матрицы размером 5×5 второй пример представляет собой единичную матрицу размерами в пять строк и пять столбцов, имеющую тип float «1» на главной диагонали и остальные элементы равны нулю.
В статье показан метод реализации функции идентификации NumPy в скрипте Python.