English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básica de Python

Control de flujo de Python

Funciones en Python

Tipos de datos en Python

Operaciones de archivos de Python

Objetos y Clases de Python

Fecha y Hora de Python

Conocimientos Avanzados de Python

Manual de Referencia de Python

Python matrices and NumPy arrays

En este artículo, aprenderemos a usar listas anidadas y el paquete NumPy para matrices en Python.

Una matriz es una estructura de datos bidimensional donde los números se organizan en filas y columnas. Por ejemplo:

Esta matriz es3x4matriz de ("tres por cuatro") porque tiene3filas4columnas.

Matrices de Python

Python no tiene un tipo de matriz integrado. Sin embargo, podemos ver las listas de listas como matrices. Por ejemplo:

A = [[1, 4, 5], 
    [-5, 8, 9]]

Podemos ver esta lista de listas como una estructura con2filas3matrices de columnas.

Antes de continuar con este artículo, asegúrate de entenderListas de Python

Vamos a ver cómo usar listas anidadas.

A = [[1, 4, 5, 12], 
    [-5, 8, 9, 0],
    [-6, 7, 11, 19]]
print("A =", A) 
print("A[1]=", A[1])     # segunda fila
print("A[1][2]=", A[1][2])   # tercer elemento de la segunda fila
print("A[0][-1] =", A[0][-1])   # último elemento de la última fila
column = [];        # vacío lista
for row in A:
  column.append(row[2])   
print("3rd column =", column)

When we run the program, the output will be:

A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]]
A[1] = [-5, 8, 9, 0]
A[1][2]= 9
A[0][-1]= 12
3rd column = [5, 9, 11]

A continuación se presentan algunos ejemplos relacionados con matrices de Python usando listas anidadas.

El uso de listas anidadas como matrices se puede usar para tareas de cálculo simples, pero el usoNumPyEl paquete es una mejor manera de manejar matrices en Python.

Arreglo NumPy

NumPy es un paquete de software para cálculos científicos que admite objetos de arreglos N dimensionales poderosos. Antes de usar NumPy, debe instalarlo. Para más información,

Una vez instalado NumPy, puede importarlo y usarlo.

NumPy proporciona arreglos multidimensionales de números (que en realidad es un objeto). Vamos a dar un ejemplo:

import numpy as np
a = np.array([1, 2, 3])
print(a)                                                   # Salida: [1, 2, 3]
print(type(a))                                           # Salida: <class 'numpy.ndarray'>

Como puede ver, la clase de array de NumPy se llama ndarray.

¿Cómo crear un arreglo NumPy?

Hay varias formas de crear arreglos NumPy.

1.arreglos de enteros, flotantes y números complejos

import numpy as np
A = np.array([1, 2, 3], [3, 4, 5])
print(A)
A = np.array([1.1, 2, 3], [3, 4, 5]) # Arreglo de flotantes
print(A)
A = np.array([1, 2, 3], [3, 4, 5], dtype = complex) # Arreglo de números complejos
print(A)

Al ejecutar el programa, la salida será:

[[1 2 3]
 [3 4 5]]
[[1.1 2.  3.]]
 [3.  4.  5.]]
[[1.+0.j 2.+0.j 3.+0.j]
 [3.+0.j 4.+0.j 5.+0.j]]

2.arreglo de ceros y unos

import numpy as np
zeors_array = np.zeros( (2, 3) )
print(zeors_array)
'''
 Salida:
 [[0. 0. 0.]
  [0. 0. 0.]]
'''
ones_array = np.ones( (1, 5), dtype=np.int32 ) // dtype
print(ones_array)                                           # Salida: [[1 1 1 1 1]]

Aquí, especificamos dtype32bits (4bytes). Por lo tanto, el array puede tomar valores desde a-2-312-31-1

3.usando arange() y shape()

import numpy as np
A = np.arange(4)
print('A =', A)
B = np.arange(12).reshape(2, 6)
print('B =', B)
''' 
Salida:
A = [0 1 2 3]
B = [[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]]
'''

Conocer sobreCrear un array NumPyde otros métodos.

más información sobre operaciones de matrices

En la parte superior, le ofrecimos3Un ejemplo: suma de dos matrices, multiplicación de dos matrices y transpuesta de una matriz. Antes de escribir estos programas, usamos listas anidadas. Veamos cómo podemos completar la misma tarea usando arrays NumPy.

Adición de matrices

Usamos+el operador suma los elementos correspondientes de dos matrices NumPy.

import numpy as np
A = np.array([2, 4], [5, -6])
B = np.array([[[9, -3], [3, 6])
C = A + B # Adición inteligente de elementos
print(C)
''' 
Salida:
[[11  1]
 [ 8  0]]
 '''

multiplicación de matrices

Para multiplicar dos matrices, usamos el método dot(). Más información sobrenumpy.dotmás información sobre cómo funciona.

Nota: *para la multiplicación de matrices (multiplicación de elementos correspondientes de dos matrices), no para la multiplicación matricial.

import numpy as np
A = np.array([3, 6, 7], [5, -3, 0]])
B = np.array([[[1, 1], [2, 1], [3, -3])
C = A.dot(B)
print(C)
''' 
Salida:
[[ 36 -12]
 [ -1   2]]
'''

transpuesta de la matriz

Usamosnumpy.transposeCalcular la transpuesta de la matriz.

import numpy as np
A = np.array([1, 1], [2, 1], [3, -3])
print(A.transpose())
''' 
Salida:
[[ 1  2  3]
 [ 1  1 -3]]
'''

Como puedes ver, NumPy hace que nuestra tarea sea más sencilla.

Acceder a los elementos de la matriz, filas y columnas

Acceder a los elementos de la matriz

Al igual que con una lista, podemos usar índices para acceder a los elementos de la matriz. Comencemos con un array unidimensional de NumPy.

import numpy as np
A = np.array([2, 4, 6, 8, 10])
print("A[0] =", A[0]) # Primer elemento     
print("A[2]=", A[2]) # Tercer elemento 
print("A[-1]=", A[-1]) # Último elemento

Al ejecutar el programa, la salida será:

A[0] = 2
A[2]= 6
A[-1]= 10

Ahora, veamos cómo acceder a los elementos de un array bidimensional (básicamente una matriz).

import numpy as np
A = np.array([1, 4, 5, 12],
    [-5, 8, 9, 0],
    [-6, 7, 11, 19])
# Primer elemento de la primera fila
print("A[0][0] =", A[0][0])  
# Tercer elemento de la segunda fila
print("A[1][2]=", A[1][2])
# Último elemento de la última fila
print("A[-1][-1]=", A[-1][-1])

When we run the program, the output will be:

A[0][0] = 1
A[1][2]= 9
A[-1][-1]= 19

acceder a las filas de la matriz

import numpy as np
A = np.array([1, 4, 5, 12], 
    [-5, 8, 9, 0],
    [-6, 7, 11, 19])
print("A[0] =", A[0]) # Primera Fila
print("A[2]=", A[2]) # Tercera Fila
print("A[-1]=", A[-1]) # Última Fila (3rd row en este caso)

When we run the program, the output will be:

A[0] = [1, 4, 5, 12]
A[2] = [-6, 7, 11, 19]
A[-1] = [-6, 7, 11, 19]

acceder a las columnas de la matriz

import numpy as np
A = np.array([1, 4, 5, 12], 
    [-5, 8, 9, 0],
    [-6, 7, 11, 19])
print("A[:,0] =", A[:,0]) # Primera Columna
print("A[:,3]=", A[:,3]) # Cuarto Columna
print("A[:,-1]=", A[:,-1]) # Last Column (4th column in this case)

When we run the program, the output will be:

A[:,0] = [ 1 -5 -6]
A[:,3] = [12  0 19]
A[:,-1] = [12  0 19]

If you don't know how the above code works, please read the slicing part of this article on matrices.

matrix slicing

The slicing of one-dimensional NumPy arrays is similar to lists. If you don't know how list slicing works, please visitUnderstand Python slicing symbols

Let's take an example:

import numpy as np
letters = np.array([1, 3, 5, 7, 9, 7, 5])
# 3rd to 5th elements
print(letters[2:5])        # Output: [5, 7, 9]
# 1st to 4th elements
print(letters[:-5])        # Output: [1, 3]   
# 6th to last elements
print(letters[5:])          # Output:[7, 5]
# 1st to last elements
print(letters[:])          # Output:[1, 3, 5, 7, 9, 7, 5]
# reversing a list
print(letters[::-1])          # Output:[5, 7, 9, 7, 5, 3, 1]

Now, let's see how to slice matrices.

import numpy as np
A = np.array([1, 4, 5, 12, 14], 
    [-5, 8, 9, 0, 17],
    [-6, 7, 11, 19, 21])
print(A[:2, :4)]  # Two rows, four columns
''' Output:
[[ 1  4  5 12]
 [-5  8  9  0]]
'''
print(A[:1,])  # First row, all columns
''' Output:
[[ 1  4  5 12 14]]
'''
print(A[:,2)]  # All rows, second column
''' Output:
[ 5  9 11]
'''
print(A[:, 2:5)]  # All rows, third to fifth columns
'''Output:
[[ 5 12 14]
 [ 9  0 17]
 [11 19 21]]
'''

As you can see, using NumPy (instead of nested lists) makes it easier to handle matrices, and we haven't even touched the basics yet. We recommend that you study the NumPy package in detail, especially when you try to use Python for data science/when analyzing.

NumPy resources that you may find helpful: