Introducción a las matrices multidimensionales en Python

A menudo, en la vida diaria, tenemos problemas en los que necesitamos almacenar algunos datos en un formato de tabla rectangular. Estas tablas también se pueden llamar matriz o matriz 2D. En Python, las matrices multidimensionales se pueden lograr al tener una lista dentro de la lista o listas anidadas. La lista se puede usar para representar datos en el siguiente formato en python:

Lista = (1, 2, 3)

La lista se puede escribir con valores separados por comas. La lista puede tener datos como entero, flotante, cadena, etc. y también se puede modificar después de la creación. La indexación en las listas es bastante sencilla, con un índice que comienza en 0 y se extiende hasta la longitud completa de la lista-1.

Cuando una lista tiene otras listas como elementos, forma una lista o matriz multidimensional. Por ejemplo:

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

Aquí se puede acceder a cada valor de la lista escribiendo el nombre de la lista seguido de un corchete para recuperar los valores de la lista externa de la siguiente manera:

Imprimir (Lista (1))

# (2, 5)

Si desea ir más allá de la lista interna, agregue un corchete más para acceder a sus elementos de la siguiente manera:

Imprimir (Lista (1) (0))

# 2

Del mismo modo, si tenemos varias listas dentro de una lista como:

Lista = ((1, 3, 5), (8, 5, 6), (7, 1, 6)) # también se puede ver como

El | 1, 3, 5 |

El | 8, 5, 6 |

El | 7, 1, 6 |

Se puede acceder a todos los elementos de la lista mediante los siguientes índices:

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

Crear una lista o matriz multidimensional

Supongamos que tenemos dos variables como, el número de filas 'r' y el número de columnas 'c'. por lo tanto, para hacer una matriz de tamaño m * n, se puede hacer como:

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

Este tipo de declaración no creará m * n espacios en la memoria, sino que solo se creará un número entero al que hace referencia cada elemento de la lista interna, mientras que las listas internas se colocan como elementos en la lista externa. Por lo tanto, en tal caso, si cambiamos cualquier elemento a 5, toda la matriz tendrá 5 como valores en cada lugar del elemento de la misma columna que a continuación:

Matriz (0) (0) = 5

El | 5, 0, 0 |

El | 5, 0, 0 |

El | 5, 0, 0 |

Otra forma de declarar una matriz es mediante el uso de un generador con una lista de elementos 'c' repetidos 'r' veces. La declaración se puede hacer de la siguiente manera:

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

Aquí cada elemento es completamente independiente de los otros elementos de la lista. La lista (0) * c se construye r veces como una nueva lista, y aquí no se copia ninguna referencia.

¿Cómo ingresar valores en matrices multidimensionales?

Aquí estamos suponiendo una matriz 2D con r filas y c columnas para las cuales tomaremos los valores de los elementos del usuario.

# El usuario ingresará el número de filas en la primera línea

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

Valores iterativos de una matriz multidimensional

Para iterar a través de todos los elementos de la matriz multidimensional, necesitamos usar el concepto de bucle anidado como se muestra a continuación:

# al principio crearemos una matriz de columnas c y filas r

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) ) )

Arreglos multidimensionales de Numpy

Veamos los arreglos multimedia numpy en python:

Numpy es un paquete predefinido en python que se utiliza para realizar operaciones matemáticas potentes y admite un objeto de matriz N-dimensional. La clase de matriz de Numpy se conoce como "ndarray", que es clave para este marco. Los objetos de esta clase se conocen como una matriz numpy. La diferencia entre la lista multidimensional y las matrices Numpy es que las matrices numpy son homogéneas, es decir, pueden contener valores enteros, de cadena, flotantes, etc., y su tamaño es fijo. La lista multidimensional se puede convertir fácilmente a matrices Numpy como se muestra a continuación:

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

Aquí la lista multidimensional dada se convierte en Numpy array arr.

Crear una matriz de 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

Salida:

((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))

Acceso a elementos, filas y columnas de Numpy Matrix

Se puede acceder a cada elemento de la matriz Numpy de la misma manera que en la Lista multidimensional, es decir, el nombre de la matriz seguido de dos llaves cuadradas que le indicarán al índice de fila y columna que elija un elemento específico.

Ejemplo:

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

Salida:

2

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

Algunas propiedades de Numpy Array

Algunas propiedades básicas de las matrices Numpy se utilizan en el siguiente programa:

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())

Salida:
zero_array = ((0. 0.) (0. 0.) (0. 0.)) one_array = ((1. 1.) (1. 1.) (1. 1.)) X = ((0 1 2) (3 4 5) (6 7 8)) Transposición de X = ((0 3 6) (1 4 7) (2 5 8))

Conclusión

Las matrices multidimensionales en Python brindan la posibilidad de almacenar diferentes tipos de datos en una sola matriz (es decir, en el caso de una lista multidimensional) con cada matriz interna de elementos capaz de almacenar datos independientes del resto de la matriz con su propia longitud también conocida como matriz irregular, que no se puede lograr en Java, C y otros lenguajes.

Artículos recomendados

Esta es una guía de matrices multidimensionales en Python. Aquí discutimos la Introducción a las matrices multidimensionales en Python, Crear una lista o matriz multidimensional, etc. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Matrices dentadas C #
  2. Matrices 3D en Java
  3. ¿Qué es TensorFlow?
  4. ¿Qué es NumPy?
  5. Para Loop en PHP
  6. Matrices 3D en C ++
  7. Matrices en PHP
  8. ¿Cómo funcionan las matrices y listas en Python?
  9. ¿Cómo funciona la matriz en Unix con sintaxis?