Como calcular matrizes em python sem Numpy

Como calcular matrizes em python sem Numpy
A série vertical de objetos em uma matriz python é geralmente conhecida como "colunas", enquanto a série horizontal de coisas é chamada de “linhas.”Como uma lista aninhada, as linhas e colunas foram colocadas umas sobre as outras. Se uma matriz possui linhas “k” e colunas “m”, e se “k” e “m” forem números inteiros positivos, a ordem de tal objeto matriz é determinada por “k-by-m”.

Uma matriz pode conter strings, números e outros tipos de dados de objetos. Em uma matriz, os dados são empilhados em duas colunas e linhas. Uma estrutura de dados -chave que suporta cálculos em ciências e matemática é a matriz. Como o Python não fornece um tipo embutido para um objeto Matrix, tratamos a lista entre listas ou mesmo uma lista aninhada como uma matriz.

Como as matrizes no Python funcionam

Os dados são escritos em uma matriz bidimensional para gerar uma matriz. O procedimento é o seguinte:

[[1 3 5 7 9]
[2 4 6 8 10]
[0 8 7 4]]

Tem uma matriz de 3 por 5 como sua tela. Portanto, seu tamanho é 3 por 5. Os dados dentro desta matriz consistem em objetos de qualquer tipo de dados inteiro. A linha superior, linha1, tem os valores 1, 3, 5, 7 e 9, enquanto a linha2, juntamente com a linha3, tem os valores (2, 4, 6, 8) e respectivamente (0, 8, 7, 4). A coluna 1 contém valores de (1, 2, 0), bem como a coluna 2 tem valores de (3, 4, 8) e assim por diante.

O Python nos permite armazenar todos os dados em uma matriz com duas dimensões. Podemos adicionar matrizes, multiplicá -las, transpor -lhes e executar outras operações em uma matriz. Utilizando matrizes, podemos construir uma matriz python e usá -la da mesma forma. Vamos falar sobre diferentes exemplos de matrizes python.

Adição da matriz Python

Vamos pegar as duas matrizes e adicioná -las para iterar através delas usando um loop aninhado.

Matrix1 = [[2, 4, 1],
[4, 1, 5],
[3, 6, 7]]
matrix2 = [[4, 2, -1],
[5, 6, -3],
[0, -4, 3]]
Matrix3 = [[0,1,0],
[1,0,0],
[0,0,1]]
Matrix4 = [[0,0,1],
[0,1,0],
[1,0,0]]
matrices_length = len (matriz1)
para linha em alcance (Len (Matrix1)):
para coluna em intervalo (Len (Matrix2 [0])):
matrix4 [linha] [coluna] = matrix1 [linha] [coluna] + matrix2 [linha] [coluna] + matrix3 [linha] [coluna]
print ("A soma das matrizes é =", matriz4)

Inicialmente, em vez de usar o Numpy, construímos diretamente três matrizes com ordem 3 por 3. Especificamos a ordem ou comprimento da matriz 1 como função len () e outros, respectivamente. Usando loops aninhados, primeiro, as três matrizes foram adicionadas. O total das três matrizes foi então especificado como matriz 4 e usamos a função print () para exibir os resultados.

Transpor uma matriz em python

Ao trocar os elementos das colunas e linhas da matriz, poderíamos transpor -os. Usando exemplos diferentes, demonstraremos como obter uma transposição de uma matriz usando Python sem Numpy.

A transposição de uma matriz é representada pelo símbolo em. Por exemplo, suponha que tenhamos uma matriz "A" tendo a ordem de:

3 por 2

Então a transposição de um é:

Matriz 2 por 3

Calcular a transposição de uma matriz com a ajuda de um loop aninhado

O loop aninhado pode ser usado para iterar repetidamente através das colunas e as fileiras de até uma lista aninhada. Insira o elemento na linha "Ith" e a coluna "JTH" da matriz F ao lado da linha "Jth" e da coluna "ITH" da matriz "f^t" para obter a transposição da matriz. "F^t" será uma matriz 2 por 3 assumindo que "f" é uma matriz 3 por 2.

F = [[2, 3],
[5, 7],
[8, 1]]
F_t = [[0, 0, 0],
[0, 0, 0]]
para q no intervalo (len (f)):
para w no intervalo (len (f [0])):
F_t [w] [q] = f [q] [w]
para q em f_t:
Impressão (Q)

Uma matriz de transposição da matriz original e uma matriz "f" com um pedido de 3 por 2 é criada pela primeira vez. O programa anterior usa loops aninhados "para", continuamente iterados em cada linha e, posteriormente, cada coluna. Em cada iteração, adicionamos um elemento de "f [q] [w]" em "ft [w] [q]". Finalmente, executamos o método print () para descrever a transposição.

Usando uma compreensão de lista aninhada para encontrar a transposição da matriz

Uma lista aninhada é produzida quando uma compreensão da lista é realizada dentro de outra compreensão da lista. A seguir, a sintaxe para compreender listas aninhadas:

new_list = [[expr. para um item de lista] para um item de lista]

Da mesma forma, podemos obter uma transferência de uma matriz usando a compreensão da lista aninhada em uma abordagem de loop tão aninhada.

J = [[1, 3],
[4, 6],
[9, 2]]
J_t = [[j [v] [c] para v em range (len (j)]] para c em intervalo (len (j [0]))]]
Para C em J_T:
impressão (c)

Começamos criando Matrix "J", tendo o pedido 3 por 2. A compreensão da lista aninhada no código que precede os loops sobre os membros da matriz uma vez por vez e insere os elementos de "j [v]" em algum lugar no local "j_t [v]". As colunas da matriz são iteradas ao longo da primeira parte dessa compreensão da lista aninhada, enquanto suas linhas são repetidas na segunda coluna.

Multiplicação de duas matrizes em Python

O processo binário de multiplicação de matrizes cria a matriz usando duas matrizes. Utilizando loops aninhados e compreensão de listas, podemos multiplicar matrizes em python.

A primeira coluna da matriz e a contagem de segunda fila devem corresponder para realizar a multiplicação da matriz. A matriz que obtemos no final devido à multiplicação da matriz consistirá na mesma ordem que a matriz original. Uma ilustração da multiplicação da matriz é mostrada abaixo.

Usando a lista aninhada para encontrar multiplicação de matriz

Uma matriz pode ser criada em Python como mais do que apenas uma lista aninhada, uma espécie de lista dentro de uma lista. Uma fileira de uma matriz corresponde a todo valor de uma lista aninhada. Vamos ver uma instância de um loop aninhado utilizado para multiplicar duas matrizes.

N = [[9, 1, 7],
[3, 5, 6],
[4, 7, 8]]
M = [[2, 3, 5, 6],
[8, 9, 1, 2],
[4, 5, 9, 3]]
resultado = [[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
para u no range (len (n)):
para o em alcance (Len (m [0])):
Para P em Range (Len (M)):
resultado [u] [o] += n [u] [p] * m [p] [o]
para d em resultado:
Impressão (D)

Neste exemplo, usaremos loops aninhados para executar um programa que multiplique duas matrizes, mas antes de fazê-lo, geraremos duas matrizes, "N" e "M", que são 3 por 3 e 3- BY-4 em ordem, respectivamente, bem como uma terceira matriz que pediu 3 por 4. Em seguida, passamos por um processo de iteração em que utilizamos os elementos das linhas em "n", as colunas em "M" e as linhas em "M". Aplicamos a declaração de impressão para exibir a multiplicação das matrizes definidas.

Utilizando a compreensão da lista aninhada para encontrar multiplicação de matrizes

A compreensão da lista aninhada é o processo de realização de uma compreensão da lista juntos na compreensão da lista, resultando em algum tipo de lista aninhada

Sintaxe:

new_list = [[expr. para um item de lista] para um item de lista]

Da mesma forma, com a mesma abordagem de loop aninhada, também podemos executar a multiplicação de duas matrizes usando o método de compreensão da lista aninhada facilmente.

E = [[8, 1, 3],
[8, 7, 3],
[7, 3, 5]]
R = [[2, 3, 6, 8],
[9, 8, 5, 3],
[1, 3, 8, 9]]
resultado = [[soma (f*g para f, g em zip (e_row, r_col))
para r_col em zip (*r)] para e_row em e]
para z em resultado:
impressão (z)

Para obter o total dos produtos de cada multiplicação de linha por coluna, iteramos sobre as colunas dentro da matriz "r" e as linhas dentro da matriz "e" no programa. Para obter as colunas da matriz "r", utilizamos o método zip (). Exigimos os elementos da linha na matriz "E" como o segundo componente de uma compreensão de lista aninhada para calcular a soma dos produtos para cada linha dentro desta lista aninhada. No final, a declaração de impressão será empregada.

Conclusão

Neste guia, vimos algumas maneiras alternativas de calcular manualmente a adição da matriz, multiplicação e transposição, em vez de Numpy. Essas abordagens incluem listas aninhadas, bem como a compreensão de listas aninhadas. Além disso, vários programas são apresentados para demonstrar como essas abordagens podem ser utilizadas e funcionar de maneira diferente com adição, multiplicação e transposição de uma matriz.