Python Matriz: exemplos de transposição, multiplicação e matrizes NumPy
O que é o Python Matriz?
A Python matrix é uma matriz retangular bidimensional especializada de dados armazenados em linhas e colunas. Os dados em uma matriz podem ser números, strings, expressões, símbolos, etc. Matrix é uma das estruturas de dados importantes que podem ser usadas em cálculos matemáticos e científicos.
Como os Python Matrizes funcionam?
Os dados dentro da matriz bidimensional em formato de matriz são os seguintes:
Passo 1) Mostra uma matriz 2×2. Possui duas linhas e 2 colunas. Os dados dentro da matriz são números. A linha1 tem valores 2,3 e a linha2 tem valores 4,5. As colunas, ou seja, col1, possuem valores 2,4 e col2 possuem valores 3,5.
Passo 2) Mostra uma matriz 2×3. Possui duas linhas e três colunas. Os dados dentro da primeira linha, ou seja, linha1, possuem valores 2,3,4 e linha2 possuem valores 5,6,7. As colunas col1 possuem valores 2,5, col2 possuem valores 3,6 e col3 possuem valores 4,7.
Da mesma forma, você pode armazenar seus dados dentro da matriz nxn em Python. Muitas operações podem ser feitas em uma matriz, como adição, subtração, multiplicação, etc.
Python não possui uma maneira direta de implementar um tipo de dados matricial.
A matriz python faz uso de arrays, e a mesma pode ser implementada.
- Crie uma Python Matriz usando o tipo de dados de lista aninhada
- Crie Python Matriz usando matrizes de Python Pacote Numpy
Crie Python Matriz usando um tipo de dados de lista aninhada
In Python, os arrays são representados usando o tipo de dado list. Então agora faremos uso da lista para criar uma matriz python.
Criaremos uma matriz 3×3, conforme mostrado abaixo:
- A matriz possui 3 linhas e 3 colunas.
- A primeira linha em formato de lista será a seguinte: [8,14,-6]
- A segunda linha de uma lista será: [12,7,4]
- A terceira linha de uma lista será: [-11,3,21]
A matriz dentro de uma lista com todas as linhas e colunas é mostrada abaixo:
List = [[Row1], [Row2], [Row3] ... [RowN]]
Portanto, de acordo com a matriz listada acima, o tipo de lista com dados de matriz é o seguinte:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Para ler dados dentro Python Matriz usando uma lista.
Faremos uso da matriz definida acima. O exemplo irá ler os dados, imprimir a matriz, exibir o último elemento de cada linha.
Exemplo: Para imprimir a matriz
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] #To print the matrix print(M1)
Saída:
The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
Exemplo 2: Para ler o último elemento de cada linha
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] matrix_length = len(M1) #To read the last element from each row. for i in range(matrix_length): print(M1[i][-1])
Saída:
-6 4 21
Exemplo 3: Para imprimir as linhas da Matriz
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] matrix_length = len(M1) #To print the rows in the Matrix for i in range(matrix_length): print(M1[i])
Saída:
[8, 14, -6] [12, 7, 4] [-11, 3, 21]
Adicionando matrizes usando lista aninhada
Podemos facilmente adicionar duas matrizes fornecidas. As matrizes aqui estarão no formato de lista. Vamos trabalhar em um exemplo que terá o cuidado de somar as matrizes fornecidas.
Matriz 1:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Matriz 2:
M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]]
Por último inicializará uma matriz que armazenará o resultado de M1 + M2.
Matriz 3:
M3 = [[0,0,0], [0,0,0], [0,0,0]]
Exemplo: Adicionando Matrizes
Para adicionar, as matrizes farão uso de um loop for que percorrerá ambas as matrizes fornecidas.
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]] M3 = [[0,0,0], [0,0,0], [0,0,0]] matrix_length = len(M1) #To Add M1 and M2 matrices for i in range(len(M1)): for k in range(len(M2)): M3[i][k] = M1[i][k] + M2[i][k] #To Print the matrix print("The sum of Matrix M1 and M2 = ", M3)
Saída:
The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
Multiplicação de matrizes usando lista aninhada
Para multiplicar as matrizes, podemos usar o loop for em ambas as matrizes, conforme mostrado no código abaixo:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]] M3 = [[0,0,0], [0,0,0], [0,0,0]] matrix_length = len(M1) #To Multiply M1 and M2 matrices for i in range(len(M1)): for k in range(len(M2)): M3[i][k] = M1[i][k] * M2[i][k] #To Print the matrix print("The multiplication of Matrix M1 and M2 = ", M3)
Saída:
The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
Crie Python Matriz usando matrizes de Python Pacote Numpy
A biblioteca python Numpy ajuda a lidar com arrays. Numpy processa um array um pouco mais rápido em comparação com a lista.
Para trabalhar com o Numpy, você precisa primeiro instalá-lo. Siga as etapas abaixo para instalar o Numpy.
Passo 1) O comando para instalar o Numpy é:
pip install NumPy
Passo 2) Para usar o Numpy em seu código, você deve importá-lo.
import NumPy
Passo 3) Você também pode importar o Numpy usando um alias, conforme mostrado abaixo:
import NumPy as np
Faremos uso do método array() do Numpy para criar uma matriz python.
Exemplo: Array em Numpy para criar Python Matriz
import numpy as np M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]]) print(M1)
Saída:
[[ 5 -10 15] [ 3 -6 9] [ -4 8 12]]
Matriz Operação usando Numpy.Array()
A operação matricial que pode ser feita é adição, subtração, multiplicação, transposição, leitura das linhas, colunas de uma matriz, fatiamento da matriz, etc. Em todos os exemplos, usaremos um método array().
Adição de Matriz
Para realizar a adição na matriz, criaremos duas matrizes usando numpy.array() e adicioná-las usando o operador (+).
Exemplo:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]]) M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]]) M3 = M1 + M2 print(M3)
Saída:
[[ 12 -12 36] [ 16 12 48] [ 6 -12 60]]
Subtração de Matriz
Para realizar a subtração na matriz, criaremos duas matrizes usando numpy.array() e subtrai-las usando o operador (-).
Exemplo:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]]) M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]]) M3 = M1 - M2 print(M3)
Saída:
[[ -6 24 -18] [ -6 -32 -18] [-20 40 -18]]
Multiplicação da matriz
Primeiro criaremos duas matrizes usando numpy.arary(). Para multiplicá-los, você pode usar o método numpy dot(). Numpy.dot() é o produto escalar da matriz M1 e M2. Numpy.dot() lida com arrays 2D e realiza multiplicações de matrizes.
Exemplo:
import numpy as np M1 = np.array([[3, 6], [5, -10]]) M2 = np.array([[9, -18], [11, 22]]) M3 = M1.dot(M2) print(M3)
Saída:
[[ 93 78] [ -65 -310]]
Transposição de matriz
A transposta de uma matriz é calculada transformando as linhas em colunas e as colunas em linhas. A função transpose() do Numpy pode ser usada para calcular a transposta de uma matriz.
Exemplo:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) M2 = M1.transpose() print(M2)
Saída:
[[ 3 5 4] [ 6 -10 8] [ 9 15 12]]
Fatiamento de uma Matriz
O fatiamento retornará os elementos da matriz com base no índice inicial/final fornecido.
- A sintaxe para fatiar é – [início: fim]
- Se o índice inicial não for fornecido, ele será considerado 0. Por exemplo [:5], significa [0:5].
- Se o final não for passado, será considerado o comprimento do array.
- Se o início/fim tiver valores negativos, o fatiamento será feito a partir do final do array.
Antes de trabalharmos no fatiamento de uma matriz, vamos primeiro entender como aplicar o fatiamento em um array simples.
import numpy as np arr = np.array([2,4,6,8,10,12,14,16]) print(arr[3:6]) # will print the elements from 3 to 5 print(arr[:5]) # will print the elements from 0 to 4 print(arr[2:]) # will print the elements from 2 to length of the array. print(arr[-5:-1]) # will print from the end i.e. -5 to -2 print(arr[:-1]) # will print from end i.e. 0 to -2
Saída:
[ 8 10 12] [ 2 4 6 8 10] [ 6 8 10 12 14 16] [ 8 10 12 14] [ 2 4 6 8 10 12 14]
Agora vamos implementar o fatiamento em matriz. Para executar o fatiamento em uma matriz
a sintaxe será M1[row_start:row_end, col_start:col_end]
- O primeiro início/fim será para a linha, ou seja, para selecionar as linhas da matriz.
- O segundo início/fim será para a coluna, ou seja, para selecionar as colunas da matriz.
A matriz M1 t que vamos utilizar é a seguinte:
M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]])
Há um total de 4 linhas. O índice começa de 0 a 3. O 0th linha é [2,4,6,8,10], 1st linha é [3,6,9,-12,-15] seguida por 2nd e 3rd.
A matriz M1 possui 5 colunas. O índice começa de 0 a 4.O 0th coluna tem valores [2,3,4,5], 1st colunas têm valores [4,6,8,-10] seguidos por 2nd, 3rd, 4the 5th.
Aqui está um exemplo que mostra como obter os dados de linhas e colunas da matriz usando fatiamento. No exemplo, estamos imprimindo o 1st e 2nd linha e, para colunas, queremos a primeira, a segunda e a terceira colunas. Para obter essa saída, usamos: M1[1:3, 1:4]
Exemplo:
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[1:3, 1:4]) # For 1:3, it will give first and second row. #The columns will be taken from first to third.
Saída:
[[ 6 9 -12] [ 8 12 16]]
Exemplo: Para imprimir todas as linhas e terceiras colunas
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:,3]) # This will print all rows and the third column data.
Saída:
[ 8 -12 16 -20]
Exemplo: Para imprimir a primeira linha e todas as colunas
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:1,]) # This will print first row and all columns
Saída:
[[ 2 4 6 8 10]]
Exemplo: Para imprimir as três primeiras linhas e as 2 primeiras colunas
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:3,:2])
Saída:
[[2 4] [3 6] [4 8]]
Acessando a matriz NumPy
Vimos como funciona o fatiamento. Levando isso em consideração, veremos como obter as linhas e colunas da matriz.
Para imprimir as linhas da matriz
No exemplo irá imprimir as linhas da matriz.
Exemplo:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) print(M1[0]) #first row print(M1[1]) # the second row print(M1[-1]) # -1 will print the last row
Saída:
[3 6 9] [ 5 -10 15] [ 4 8 12]
Para obter a última linha, você pode usar o índice ou -1. Por exemplo, a matriz possui 3 linhas,
então M1[0] lhe dará a primeira linha,
M1[1] lhe dará a segunda linha
M1[2] ou M1[-1] fornecerá a terceira ou última linha.
Para imprimir as colunas da matriz
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:,0]) # Will print the first Column print(M1[:,3]) # Will print the third Column print(M1[:,-1]) # -1 will give you the last column
Saída:
[2 3 4 5] [ 8 -12 16 -20] [ 10 -15 -20 25]
Resumo
- A Python matrix é uma matriz retangular bidimensional especializada de dados armazenados em linhas e colunas. Os dados em uma matriz podem ser números, strings, expressões, símbolos, etc. Matrix é uma das estruturas de dados importantes que podem ser usadas em cálculos matemáticos e científicos.
- Python não possui uma maneira direta de implementar um tipo de dados matricial. Python a matriz pode ser criada usando um tipo de dados de lista aninhada e usando a biblioteca numpy.
- A biblioteca python Numpy ajuda a lidar com arrays. Numpy processa um array um pouco mais rápido em comparação com a lista.
- A operação matricial que pode ser feita é adição, subtração, multiplicação, transposição, leitura das linhas, colunas de uma matriz, fatiamento da matriz, etc.
- Para adicionar duas matrizes, você pode usar numpy.array() e adicioná-las usando o operador (+).
- Para multiplicá-los, você pode usar o método numpy dot(). Numpy.dot() é o produto escalar da matriz M1 e M2. Numpy.dot() lida com arrays 2D e realiza multiplicações de matrizes.
- A transposta de uma matriz é calculada alterando as linhas em colunas e as colunas em linhas. A função transpose() do Numpy pode ser usada para calcular a transposta de uma matriz.
- O fatiamento de uma matriz retornará os elementos com base no índice inicial/final fornecido.