Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Работа с матрицами Python

Замечание 1

Работа с матрицами Python — это работа с двухмерными квадратными массивами, для которых дополнительно могут выполняться операции возведения в степень и перемножения.

Введение

Матрицей является двумерный массив, который состоит из M строк и N столбцов. Матрицы могут использоваться при осуществлении математических вычислений. Программисты используют матрицы, как правило, в научной сфере, но конечно их можно применять и для других целей, к примеру, для оперативной генерации уровней в видео играх.

Пользователь может самостоятельно выполнить любые функции для работы с матрицами, такие как, умножение, сложение, транспонирование и так далее. На Python эти операции осуществить существенно легче, чем языках программирования более низкого уровня, например, на Си. Однако постоянное написание одних и тех же алгоритмов не является оптимальным вариантом, по этой причине была сформирована библиотека NumPy. Она может быть использована для сложных научных вычислительных процедур и способна предоставить специалисту набор функций по обработке двумерных массивов. Вместо написания десятков строчек кода для исполнения не сложных операций над матрицами, пользователь может просто воспользоваться одной из функций библиотеки NumPy. Сама библиотека реализована на Python, Cи и Фортране, и по этой причине функции могут работать даже более быстро, чем на чистом Python.

Библиотека NumPy не является встроенной составляющей интерпретатора Python, поэтому перед импортом ее следует сначала установить. Для этого можно использовать утилиту pip, а именно, следует набрать следующую команду:

píp ínstall numpy

После установки библиотеки, она может быть подключена при помощи команды import. Для более удобной работы, можно переименовать numpy при импорте в np следующим образом: ímport numpy as np

Работа с матрицами Python

Для того чтобы создать матрицу, следует использовать функцию array(), в которую будет передан список. Приведем пример формирования матрицы, в котором в качестве аргумента функции используется двумерный список:

a = np.array([[3, 3, 3], [2, 5, 5]])

В качестве второго параметра может быть задан тип компонентов матрицы:

a = np.array([[3, 3, 3],[2, 5, 5]], int)

prínt(a)

Последняя команда выводит на консоль следующую информацию:

[[3 3 3]

[2 5 5]]

Необходимо так же отметить, что если поменять ínt на str, то тип компонентов изменится на строковый. Помимо этого, при выводе в консоль NumPy в автоматическом режиме форматирует вывод для того, чтобы он имел вид матрицы, а компоненты были расположены друг под другом.

«Работа с матрицами Python» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

В качестве типа компонентов матрицы могут использоваться ínt, float, bool, complex, bytes, str, buffers. Также могут быть использованы и другие типы NumPy, а именно:

  1. Логический тип.
  2. Целочисленный тип.
  3. Без знаковый целочисленный тип.
  4. Вещественный тип.
  5. Комплексный тип.

Для иллюстрации этих возможностей приведем следующие примеры:

  • np.bool8 является логической переменной, занимающей один байт памяти,
  • np.ínt64 является целым числом, занимающим восемь байт,
  • np.uint16 является без знаковым целым числом, занимающим два байта в памяти,
  • np.float32 является вещественным числом, занимающим четыре байта в памяти,
  • np.complex64 является комплексным числом, которое состоит из четырех байтового вещественного числа действительной части и четырех байтов мнимой части.

Для того чтобы узнать размер матрицы, необходимо использовать атрибут shape следующим образом:

síze = a.shape

prínt(síze) #

Будет выведено сообщение (2, 3)

Первое число, а именно двойка, является количеством строк, а второе число, то есть, тройка является количеством столбцов.

Когда требуется сформировать матрицу, которая состоит лишь из нулей, следует использовать функцию zeros():

a_of_zeros = np.zeros((2,2))

prínt(a_of_zeros)

Результатом данного кода будет следующее сообщение:

[[0. 0.]

[0. 0.]]

Для получения строки двухмерной матрицы, следует просто выполнить обращение к ней как показано ниже:

temp = a[0]

prínt(temp) #

Будет выведено сообщение [3 3 3]

Для того чтобы получить столбец, требуется более сложная процедура. Можно использовать срезы, где в качестве первого компонента среза можно ничего не указывать, а вторым компонентом является номер искомого столбца. Ниже приведен пример:

arr = np.array([[3,3,3],[2,5,5]], str)

temp = arr[:,2]

print(temp) #

В результате будет выведено сообщение ['3' '5'].

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

arr = np.array([[3,3,3],[2,5,5]], str)

temp = arr[1][2]

prínt(temp) #

В результате будет выведено сообщение 5.

Для того чтобы выполнить операцию сложения матриц, следует просуммировать все их соответствующие компоненты. В Python для обозначения операции сложения применяется стандартный оператор «+». Приведем пример операции сложения матриц:

arr1 = np.array([[3,3,3],[2,5,5]])

arr2 = np.array([[2,4,2],[1,3,8]])

temp = arr1 + arr2

prínt(temp)

Результат сложения матриц будет следующим:

[[ 5 7 5]

[ 3 8 13]]

Здесь следует заметить, что суммировать можно только те матрицы, которые имеют равное количество строк и столбцов. В противном случае программа на Python выдаст ошибку ValueError.

Операция умножения матриц обладает сильными отличиями от сложения. Нельзя просто взять и выполнить перемножение соответствующих элементов двух матриц. Прежде всего матрицы обязаны являться согласованными, что означает равенство количества столбцов одной матрицы количеству строк другой и наоборот. В противном случае программа выпадет в ошибку. Умножение в библиотеке NumPy может быть исполнено при помощи метода dot(). Ниже приведен пример реализации операции умножения:

arr1 = np.array([[3,3],[2,5]])

arr2 = np.array([[2,4],[1,3]])

temp = arr1.dot(arr2)

prínt(temp)

В результате исполнения этого кода будет выдано сообщение: [[ 9 21]

[ 9 23]]

Дата написания статьи: 30.03.2022
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot