Introdução às matrizes multidimensionais em Python

Frequentemente, na vida cotidiana, temos problemas em que precisamos armazenar alguns dados em um formato de tabela retangular. Essas tabelas também podem ser chamadas de matriz ou matriz 2D. No Python, matrizes multidimensionais podem ser obtidas com uma lista dentro da lista ou nas listas aninhadas. A lista pode ser usada para representar dados no formato abaixo em python:

Lista = (1, 2, 3)

A lista pode ser escrita com valores separados por vírgula. A lista pode ter dados como número inteiro, número flutuante, sequência etc. e também pode ser modificada após a criação. A indexação nas listas é bastante direta, com o índice começando de 0 e se estendendo até todo o comprimento da lista-1.

Quando uma lista está tendo outras listas como elementos, ela forma uma lista ou matriz multidimensional. Por exemplo:

Lista = ((1, 2), (2, 5), (5, 1))

Aqui, cada valor da lista pode ser acessado escrevendo o nome da lista seguido de colchete para recuperar os valores da lista externa, conforme abaixo:

Imprimir (lista (1))

# (2, 5)

Se você quiser ir mais longe na lista interna, adicione mais um colchete para acessar seus elementos, como abaixo:

Imprimir (lista (1) (0))

# 2

Da mesma forma, se tivermos várias listas dentro de uma lista como:

Lista = ((1, 3, 5), (8, 5, 6), (7, 1, 6)) # também pode ser visto como

| 1, 3, 5 |

| 8, 5, 6 |

| 7, 1, 6 |

Todos os elementos da lista podem ser acessados ​​pelos índices abaixo:

(0) (0), (0) (1), (0) (2) (1) (0), (1) (1), (1) (2) (2) (0), (2) (1), (2) (2)

Criando uma lista ou matriz multidimensional

Suponhamos que temos duas variáveis ​​como, o número de linhas 'r' e o número de colunas 'c'. portanto, para criar uma matriz de tamanho m * n, pode ser feita como:

Array = ( (0) * c ) * r ) # with each element value as 0

Esse tipo de declaração não criará m * n espaços na memória, apenas um número inteiro será criado, referenciado por cada elemento da lista interna, enquanto as listas internas estão sendo colocadas como elementos na lista externa. Portanto, nesse caso, se alterarmos qualquer elemento para 5, toda a matriz terá 5 como valores em cada elemento, na mesma coluna como abaixo:

Matriz (0) (0) = 5

| 5, 0, 0 |

| 5, 0, 0 |

| 5, 0, 0 |

Outra maneira de declarar uma matriz é usar um gerador com uma lista de elementos 'c' repetidos vezes 'r'. A declaração pode ser feita como abaixo:

c = 4
r = 3
Array = ( (0) * c for i in range(r) )

Aqui cada elemento é completamente independente dos outros elementos da lista. A lista (0) * c é construída r vezes como uma nova lista, e aqui nenhuma cópia de referências acontece.

Como inserir valores em matrizes multidimensionais?

Aqui estamos supondo uma matriz 2D com r linhas ec colunas para as quais levaremos os valores dos elementos do usuário.

# O usuário digitará o número de linhas na primeira linha

r = int(input())
arr = () for i in range(r):
arr.append((int(j) for j in input().split()))

Iterando valores de uma matriz multidimensional

Para percorrer todos os elementos da matriz multidimensional, precisamos usar o conceito aninhado para loop, como abaixo:

# primeiro, criaremos uma matriz de c colunas er linhas

c = 4
r = 3
arr = ((0) * c for i in range(r)) # loop will run for the length of the outer list
for i in range(r):
# loop will run for the length of the inner lists
for j in range(c):
if i < j:
arr(i)(j) = 8
elif i > j:
arr(i)(j) = 4
else:
arr(i)(j) = 7
for r in arr:
print( ' '.join((str(x) for x in r) ) )

Matrizes multidimensionais numpy

Vamos ver as matrizes multimídia numpy em python:

O Numpy é um pacote predefinido em python usado para executar operações matemáticas poderosas e suportar um objeto de matriz N-dimensional. A classe de array do Numpy é conhecida como "ndarray", que é a chave para essa estrutura. Os objetos desta classe são referidos como uma matriz numpy. A diferença entre a lista multidimensional e as matrizes numpy é que as matrizes numpy são homogêneas, ou seja, podem conter apenas um número inteiro, string, float etc., valores e seu tamanho é fixo. A lista multidimensional pode ser facilmente convertida em matrizes Numpy como abaixo:

import numpy as nmp
arr = nmp.array( ( (1, 0), (6, 4) ) )
print(arr)

Aqui, a lista multidimensional fornecida é convertida para a matriz Numpy arr.

Criando uma matriz numpy

import numpy as nmp
X = nmp.array( ( ( 1, 6, 7), ( 5, 9, 2) ) )
print(X) #Array of integers
X = nmp.array( ( ( 1, 6.2, 7), ( 5, 9, 2) ) )
print(X) #Array of floats
X = nmp.array( ( ( 1, 6, 7), ( 5, 9, 2) ), dtype = complex )
print(X) #Array of complex numbers

Resultado:

((1 6 7) (5 9 2)) ((1. 6.2 7.) (5. 9. 2.)) ((1. + 0.j 6. + 0.j 7. + 0.j) (5. + 0.j 9. + 0.j 2. + 0.j))

Acessando elementos, linhas e colunas da matriz Numpy

Cada elemento da matriz Numpy pode ser acessado da mesma maneira que na Lista Multidimensional, ou seja, nome da matriz seguido por dois colchetes, que informarão o índice de linha e coluna a escolher um elemento específico.

Exemplo:

import numpy as nmp
X = nmp.array( ( ( 1, 6, 7),
( 5, 9, 2),
( 3, 8, 4) ) )
print(X(1)(2)) # element at the given index ie 2
print(X(0)) # first row
print(X(1)) # second row
print(X(-1)) # last row
print(X(:, 0)) # first column
print(X(:, 2)) # third column
print(X(:, -1)) # last column

Resultado:

2

(1 6 7) (5 9 2) (3 8 4) (1 5 3) (7 2 4) (7 2 4)

Algumas propriedades da matriz Numpy

Algumas propriedades básicas das matrizes Numpy são usadas no programa abaixo:

import numpy as nmp
zero_array = nmp.zeros( (3, 2) )
print('zero_array = ', zero_array)
one_array = nmp.ones( (3, 2) )
print('one_array = ', one_array)
X = nmp.arange(9).reshape(3, 3)
print('X= ', X)
print('Transpose of X= ', X.transpose())

Resultado:
matriz_ zero = ((0. 0.) (0. 0.) (0. 0.)) matriz_ = ((1. 1.) (1. 1.) (1. 1.)) X = ((0 1 2) (3 4 5) (6 7 8)) Transposição de X = ((0 3 6) (1 4 7) (2 5 8))

Conclusão

Matrizes multidimensionais em Python fornecem a facilidade de armazenar diferentes tipos de dados em uma única matriz (ou seja, no caso de lista multidimensional) com cada elemento da matriz interna capaz de armazenar dados independentes do restante da matriz com seu próprio comprimento, também conhecido como matriz irregular, que não pode ser alcançado em Java, C e outras linguagens.

Artigos recomendados

Este é um guia para matrizes multidimensionais em Python. Aqui discutimos a introdução às matrizes multidimensionais no Python, criando uma lista ou matriz multidimensional etc. Você também pode consultar nossos outros artigos sugeridos para saber mais:

  1. Matrizes irregulares em C #
  2. Matrizes 3D em Java
  3. O que é o TensorFlow?
  4. O que é o NumPy?
  5. For Loop em PHP
  6. Matrizes 3D em C ++
  7. Matrizes em PHP
  8. Como matrizes e listas funcionam em Python?
  9. Como o Array funciona no Unix com sintaxe?