Как создать матрицу в python
Перейти к содержимому

Как создать матрицу в python

  • автор:

�� Как создать матрицу в Python: подробное руководство и примеры кода

Матрица — это особый тип структуры данных, представляющий собой двумерный массив элементов. Python предоставляет несколько способов создания матрицы, и мы рассмотрим их в этой статье.

1. Создание матрицы с помощью вложенных списков

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

 matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

В этом примере мы создали матрицу 3×3 со значениями от 1 до 9.

2. Создание матрицы с помощью NumPy

Библиотека NumPy предоставляет мощные инструменты для работы с матрицами. Чтобы создать матрицу с помощью NumPy, мы можем использовать функцию numpy.array() .

 import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 

В этом примере мы создали такую же матрицу 3×3 с использованием NumPy.

3. Создание пустой матрицы

Если вам нужно создать пустую матрицу определенного размера, вы можете использовать numpy.zeros() или numpy.empty() .

 import numpy as np # Создаем пустую матрицу размером 2x2 matrix = np.zeros((2, 2)) 

В этом примере мы создали пустую матрицу 2×2, заполненную нулями. Вы также можете использовать numpy.empty() для создания пустой матрицы без инициализации значений.

4. Создание единичной матрицы

Единичная матрица — это квадратная матрица, у которой все элементы на главной диагонали равны 1, а все остальные элементы равны 0. В NumPy вы можете создать единичную матрицу с помощью numpy.eye() .

 import numpy as np # Создаем единичную матрицу размером 3x3 matrix = np.eye(3) 

В этом примере мы создали единичную матрицу 3×3.

5. Создание случайной матрицы

Если вам нужно создать матрицу со случайными значениями, вы можете использовать numpy.random.rand() .

 import numpy as np # Создаем случайную матрицу размером 2x2 matrix = np.random.rand(2, 2) 

В этом примере мы создали случайную матрицу 2×2.

Вывод

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

Python Matrix — учебное пособие по матрицам

Мы можем реализовать матрицу Python в форме 2-го списка или 2-го массива. Для выполнения операций с Python Matrix нам необходимо импортировать Python NumPy Module.

Matrix важен в области статистики, обработки данных, обработки изображений и т. д.

Python Matrix объяснение

Создание матрицы Python

Матрицу Python можно создать одним из следующих способов:

  • Используя списки
  • Используя метод arange()
  • и метода matrix()

1 С использованием списков

numpy.array() можно использовать для создания массива, используя списки в качестве входных данных.

import numpy input_arr = numpy.array([[ 10, 20, 30],[ 40, 50, 60]]) print(input_arr)
[[10 20 30] [40 50 60]]

Как видно выше, выходные данные представляют собой двумерную матрицу с заданным набором входных данных в виде списка.

2 С помощью функции numpy.arange()

numpy.arange() вместе со списком входов.

import numpy print(numpy.array([numpy.arange(10,15), numpy.arange(15,20)]))
[[10 11 12 13 14] [15 16 17 18 19]]

3 С помощью функции numpy.matrix().

Функция numpy.matrix() , ее синтаксис:

numpy.matrix(input,dtype)
  • input: элементы input для формирования матрицы.
  • dtype: тип данных соответствующего вывода.
import numpy as p matA = p.matrix([[10, 20], [30, 40]]) print('MatrixA:\n', matA) matB = p.matrix('[10,20;30,40]', dtype=p.int32) # Setting the data-type to int print('\nMatrixB:\n', matB)
MatrixA: [[10 20] [30 40]] MatrixB: [[10 20] [30 40]]

Сложение

Операцию сложения матриц можно выполнить следующими способами:

  • Традиционный метод
  • Используя оператор ‘+’

1 Традиционный метод

В этом традиционном методе мы в основном берем ввод от пользователя, а затем выполняем операцию сложения с использованием циклов for (для обхода элементов матрицы) и оператора ‘+’.

import numpy as p ar1 = p.matrix([[11, 22], [33, 44]]) ar2 = p.matrix([[55, 66], [77, 88]]) res = p.matrix(p.zeros((2,2))) print('Matrix ar1 :\n', ar1) print('\nMatrix ar2 :\n', ar2) # traditional code for x in range(ar1.shape[1]): for y in range(ar2.shape[0]): res[x, y] = ar1[x, y] + ar2[x, y] print('\nResult :\n', res)

Примечание. Matrix.shape возвращает размеры конкретной матрицы.

Matrix ar1 : [[11 22] [33 44]] Matrix ar2 : [[55 66] [77 88]] Result : [[ 66. 88.] [ 110. 132.]]

2 Использование оператора «+»

Этот метод обеспечивает большую эффективность кода, поскольку он уменьшает LOC (количество строк кода) и, таким образом, оптимизирует код.

import numpy as p ar1 = p.matrix([[11, 22], [33, 44]]) ar2 = p.matrix([[55, 66], [77, 88]]) res = p.matrix(p.zeros((2,2))) print('Matrix ar1 :\n', ar1) print('\nMatrix ar2 :\n', ar2) res = ar1 + ar2 # using '+' operator print('\nResult :\n', res)
Matrix ar1 : [[11 22] [33 44]] Matrix ar2 : [[55 66] [77 88]] Result : [[ 66 88] [110 132]]

Умножение матриц

Умножение матриц в Python можно обеспечить следующими способами:

  • Скалярное произведение;
  • Матричный продукт.

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

В скалярном произведении постоянное значение умножается на каждый элемент матрицы.

Оператор ‘*’ используется для умножения скалярного значения на элементы входной матрицы.

import numpy as p matA = p.matrix([[11, 22], [33, 44]]) print("Matrix A:\n", matA) print("Scalar Product of Matrix A:\n", matA * 10)
Matrix A: [[11 22] [33 44]] Scalar Product of Matrix A: [[110 220] [330 440]]

Функция numpy.dot()

Как упоминалось выше, мы можем использовать оператор ‘*’ только для скалярного умножения. Чтобы продолжить умножение матриц, нам нужно использовать numpy.dot() .

Функция numpy.dot() принимает массивы NumPy в качестве значений параметров и выполняет умножение в соответствии с основными правилами умножения матриц.

import numpy as p matA = p.matrix([[11, 22], [33, 44]]) matB = p.matrix([[2,2], [2,2]]) print("Matrix A:\n", matA) print("Matrix B:\n", matB) print("Dot Product of Matrix A and Matrix B:\n", p.dot(matA, matB))
Matrix A: [[11 22] [33 44]] Matrix B: [[2 2] [2 2]] Dot Product of Matrix A and Matrix B: [[ 66 66] [154 154]]

Вычитание

Оператор ‘-‘ используется для выполнения вычитания матриц.

import numpy as p matA = p.matrix([[11, 22], [33, 44]]) matB = p.matrix([[2,2], [2,2]]) print("Matrix A:\n", matA) print("Matrix B:\n", matB) print("Subtraction of Matrix A and Matrix B:\n",(matA - matB))
Matrix A: [[11 22] [33 44]] Matrix B: [[2 2] [2 2]] Subtraction of Matrix A and Matrix B: [[ 9 20] [31 42]]

Деление

Скалярное деление может выполняться на элементах матрицы в Python с помощью оператора ‘/’.

Оператор ‘/’ делит каждый элемент матрицы на скалярное / постоянное значение.

import numpy as p matB = p.matrix([[2,2], [2,2]]) print("Matrix B:\n", matB) print("Matrix B after Scalar Division operation:\n",(matB/2))
Matrix B: [[2 2] [2 2]] Matrix B after Scalar Division operation: [[ 1. 1.] [ 1. 1.]]

Транспонирование матрицы

Транспонирование матрицы в основном включает в себя переворачивание матрицы по соответствующим диагоналям, т. е. Меняет местами строки и столбцы входной матрицы. Строки становятся столбцами и наоборот.

Например: давайте рассмотрим матрицу A с размерами 3 × 2, т.е. 3 строки и 2 столбца. После выполнения операции транспонирования размеры матрицы A будут 2 × 3, т.е. 2 строки и 3 столбца.

Matrix.T основном выполняет транспонирование входной матрицы и создает новую в результате операции транспонирования.

import numpy matA = numpy.array([numpy.arange(10,15), numpy.arange(15,20)]) print("Original Matrix A:\n") print(matA) print('\nDimensions of the original MatrixA: ',matA.shape) print("\nTranspose of Matrix A:\n ") res = matA.T print(res) print('\nDimensions of the Matrix A after performing the Transpose Operation: ',res.shape)
Original Matrix A: [[10 11 12 13 14] [15 16 17 18 19]] Dimensions of the original MatrixA: (2, 5) Transpose of Matrix A: [[10 15] [11 16] [12 17] [13 18] [14 19]] Dimensions of the Matrix A after performing the Transpose Operation: (5, 2)

В приведенном выше фрагменте кода я создал матрицу размером 2 × 5, т.е. 2 строки и 5 столбцов.

После выполнения операции транспонирования размеры результирующей матрицы составляют 5 × 2, то есть 5 строк и 2 столбца.

Экспонента

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

import numpy matA = numpy.array([numpy.arange(0,2), numpy.arange(2,4)]) print("Original Matrix A:\n") print(matA) print("Exponent of the input matrix:\n") print(matA ** 2) # finding the exponent of every element of the matrix
Original Matrix A: [[0 1] [2 3]] Exponent of the input matrix: [[0 1] [4 9]]

В приведенном выше фрагменте кода мы выяснили показатель степени каждого элемента входной матрицы, возведя его в степень 2.

Операция умножения с использованием методов NumPy

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

  • Использование метода multiply();
  • метода matmul();
  • Использование метода dot() — уже описано в этой статье.

Метод 1: использование метода multiply()

Метод numpy.multiply() выполняет поэлементное умножение входной матрицы.

import numpy as p matA = p.matrix([[10, 20], [30, 40]]) print('MatrixA:\n', matA) matB = p.matrix('[10,20;30,40]', dtype=p.int32) # Setting the data-type to int print('\nMatrixB:\n', matB) print("Matrix multplication using numpy.matrix() method") res = p.multiply(matA,matB) print(res)
MatrixA: [[10 20] [30 40]] MatrixB: [[10 20] [30 40]] Matrix multplication using numpy.matrix() method [[ 100 400] [ 900 1600]]

Метод 2: использование метода matmul()

Метод numpy.matmul() выполняет матричное произведение.

import numpy as p matA = p.matrix([[10, 20], [30, 40]]) print('MatrixA:\n', matA) matB = p.matrix('[10,20;30,40]', dtype=p.int32) # Setting the data-type to int print('\nMatrixB:\n', matB) print("Matrix multplication using numpy.matmul() method") res = p.matmul(matA,matB) print(res)
MatrixA: [[10 20] [30 40]] MatrixB: [[10 20] [30 40]] Matrix multplication using numpy.matmul() method [[ 700 1000] [1500 2200]]

Транспонирование матрицы NumPy

Функция numpy.transpose() выполняет транспонирование.

import numpy matA = numpy.array([numpy.arange(10,15), numpy.arange(15,20)]) print("Original Matrix A:\n") print(matA) print('\nDimensions of the original MatrixA: ',matA.shape) print("\nTranspose of Matrix A:\n ") res = matA.transpose() print(res) print('\nDimensions of the Matrix A after performing the Transpose Operation: ',res.shape)
Original Matrix A: [[10 11 12 13 14] [15 16 17 18 19]] Dimensions of the original MatrixA: (2, 5) Transpose of Matrix A: [[10 15] [11 16] [12 17] [13 18] [14 19]] Dimensions of the Matrix A after performing the Transpose Operation: (5, 2)

�� Как создать матрицу в Python: пошаговое руководство с примерами и кодом

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

Способ 1: Используя вложенный список

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

 matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

В этом примере мы создали матрицу 3×3 с числами от 1 до 9. Для обращения к элементам матрицы, мы используем индексы. Например, чтобы получить значение элемента в первой строке и втором столбце, мы можем использовать следующий код:

 element = matrix[0][1] print(element) # Output: 2 

Способ 2: Используя библиотеку NumPy

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

 pip install numpy 

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

 import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 

В этом примере мы использовали функцию array() из библиотеки NumPy для создания матрицы. Теперь мы можем выполнять различные операции с матрицей, такие как сложение, вычитание, умножение и другие.

Операции с матрицами

  • Сложение матриц:
 matrix1 = [[1, 2], [3, 4]] matrix2 = [[5, 6], [7, 8]] result = [[0, 0], [0, 0]] for i in range(len(matrix1)): for j in range(len(matrix1[0])): result[i][j] = matrix1[i][j] + matrix2[i][j] print(result) # Output: [[6, 8], [10, 12]] 
 matrix1 = [[1, 2], [3, 4]] matrix2 = [[5, 6], [7, 8]] result = [[0, 0], [0, 0]] for i in range(len(matrix1)): for j in range(len(matrix2[0])): for k in range(len(matrix2)): result[i][j] += matrix1[i][k] * matrix2[k][j] print(result) # Output: [[19, 22], [43, 50]] 
  • Транспонирование матрицы:
 matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] transposed_matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] for i in range(len(matrix)): for j in range(len(matrix[0])): transposed_matrix[j][i] = matrix[i][j] print(transposed_matrix) # Output: [[1, 4, 7], [2, 5, 8], [3, 6, 9]] 

Это только некоторые из операций, которые вы можете выполнять с матрицами в Python. Открытие документации Python и NumPy поможет вам узнать больше о возможностях.

Вывод

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

Работа с Matrix в Python

Для работы с Matrix Python нам необходимо импортировать модуль numpy. Матрица используется для операций с матрицей, которая может использоваться для научных целей, обработки изображений и т.д.

Как создать матрицу?

Согласно Википедии, матрица – это прямоугольный массив чисел, символов или выражений, упорядоченный по строкам и столбцам. Итак, в следующем коде мы будем инициализировать различные типы матриц.

Обычно матрица создается с помощью функции numpy.matix(). Мы можем использовать numpy.shape, чтобы узнать размер матрицы. Смотрите следующий пример кода матрицы.

import numpy as np # create 2x2 matrix a = np.matrix([[1, 2], [3, 4]]) # using array of array print('2x2 matrix is:\n', a) # using shape attribute to get the tuple describing matrix shape print('The dimension of the matrix is :', a.shape) # using MatLab syntax in string b = np.matrix('[1,2;3,4;5,6]', dtype=np.int32) # limiting the data-type to int print('\n3x2 matrix is:\n', b) # using shape attribute to get the tuple describing matrix shape print('The dimension of the matrix is :', b.shape) # using numpy.random.rand(row, column) to generate array of random element c = np.matrix(np.random.rand(3, 3), dtype=np.float32) # considering the data-type as float print('\n3x3 random element matrix is:\n', c) # using shape attribute to get the tuple describing matrix shape print('The dimension of the matrix is :', c.shape)

Вы получите результат, как на следующем изображении.

Matrix в python

Добавление матрицы

Код для сложения матриц достаточно сложен для написания вручную. Благодаря модулю numpy мы можем просто использовать оператор + для добавления матрицы. Итак, в следующем примере кода мы увидим, как писать код сложения вручную, а также с помощью оператора +.

import numpy as np # create two 2x2 matrix a = np.matrix([[1, 2], [3, 4]]) # using array of array b = np.matrix([[5, 6], [7, 8]]) # using array of array result = np.matrix(np.zeros((2,2))) # result matrix print('A matrix :\n', a) print('\nB matrix :\n', b) # traditional code for i in range(a.shape[1]): for j in range(a.shape[0]): result[i, j] = a[i, j] + b[i, j] print('\nManually calculated result :\n', result) # get the result by simply using + operator resultB = a + b print('\nCalculated using matrix + operator :\n', resultB)
A matrix : [[1 2] [3 4]] B matrix : [[5 6] [7 8]] Manually calculated result : [[ 6. 8.] [ 10. 12.]] Calculated using matrix + operator : [[ 6 8] [10 12]]

Умножение и транспонирование матриц, обратная матрица

В предыдущем разделе мы обсудили преимущество Python Matrix в том, что он просто упрощает для нас задачу. Таким образом, мы можем просто умножить две матрицы, получить инверсию и транспонирование матрицы.

Как мы видели ранее, оператор + добавляет две матрицы, здесь мы можем просто использовать оператор * для умножения матриц. При этом количество столбцов в первой матрице должно быть равно количеству строк во второй матрице.

Мы можем получить инверсию матрицы, используя функцию getI() и использовать getT() для транспонирования матрицы. Давайте посмотрим на пример:

import numpy as np # initialize a 3x2 matrix of random values matA = np.matrix(np.random.rand(3, 2)) # print the first matrix print('The first matrix is :\n', matA) # initialize a 2x3 matrix of random values matB = np.matrix(np.random.rand(2, 3)) # print the second matrix print('\nThe second matrix is :\n', matB) # multiply two matrix using * operator result = matA * matB # print the resultant matrix print('\nMatrix multiplication result :\n', result) # get the inverse of the first matrix inverseMatA = matA.getI() print('\nThe inverse of the first matrix is :\n', inverseMatA) # get the transpose matrix of the second matrix transposeMatB = matB.getT() print('\nThe transpose of the second matrix is :\n', transposeMatB)

Поскольку мы использовали случайные значения. Таким образом, элементы матрицы будут разными. Вывод вышеуказанного кода приведен ниже:

The first matrix is : [[ 0.88847844 0.01832413] [ 0.08538396 0.20208474] [ 0.92615527 0.8963927 ]] The second matrix is : [[ 0.03454971 0.89908281 0.08825769] [ 0.46224998 0.63173062 0.91734146]] Matrix multiplication result : [[ 0.039167 0.81039161 0.09522454] [ 0.09636365 0.20443036 0.1929165 ] [ 0.44635589 1.398969 0.90403851]] The inverse of the first matrix is : [[ 1.12771189 -0.15722127 0.01239153] [-1.13143853 0.40000541 1.04853336]] The transpose of the second matrix is : [[ 0.03454971 0.46224998] [ 0.89908281 0.63173062] [ 0.08825769 0.91734146]]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *