entumecido Trabajando con arreglos y matrices


Biblioteca de datos NumPy

NumPy — una biblioteca de código abierto para el lenguaje de programación Python, que implementa una gran cantidad de operaciones para trabajar con vectores, matrices y arreglos.

Los algoritmos matemáticos implementados en lenguajes interpretados (por ejemplo, Python) suelen ser mucho más lentos que los implementados en lenguajes compilados (por ejemplo, Fortran, C, Java). La biblioteca NumPy proporciona implementaciones de algoritmos computacionales (en forma de funciones y operadores) optimizados para trabajar con matrices multidimensionales. 
Como resultado, cualquier algoritmo que pueda expresarse como una secuencia de operaciones en arreglos (matrices) e implementarse usando NumPy es lo suficientemente rápido.

NumPy (Numeric Python) es una biblioteca matemática básica para trabajar con datos. Esta biblioteca es la base de otras bibliotecas para trabajar con aprendizaje automático o tareas de análisis de datos (por ejemplo, Pandas (trabajar con datos tabulares), SciPy (métodos de optimización y cálculos científicos), tt>Matplotlib (trazar)).

 

Trabajar con NumPy

Para comenzar a trabajar con la biblioteca numpy, debe importarla al comienzo del programa como cualquier otra biblioteca, importar numpy más o menos (que se usa más a menudo) importar numpy como np



Vectores NumPy

Un vector (o matriz) en NumPy es un conjunto ordenado de datos homogéneos.

Se puede acceder a un elemento de un vector por su índice, tal como se hace en las listas. Cada elemento del vector tiene su propio lugar específico, que se establece durante la creación.
Todos los elementos vectoriales tienen el mismo tipo de datos (int, str, bool, etc.).

Crear un vector
Para crear un vector, debe usar el constructor numpy.array (un objeto iterable).
Los paréntesis indican cualquier objeto iterable: tupla, lista, rango(), etc.
 
Ejemplo
importar numpy como np importar numpy como np print(np.array((1,2,3,4,5))) # vector de tupla print(np.array([1,2,3,4,5])) # vector de la lista print(np.array(range(5))) # vector del generador

Trabajar con elementos vectoriales

Trabajar con elementos vectoriales es igual que con elementos de lista, puede acceder a los elementos por su índice y también hacer cortes.

Ejemplo
1
2
3
4
5
6
7
importar numpy como np V = np.matriz((1,2,3,4)) imprimir(V[0]) # 1 imprimir (V [-1]) # 4 imprimir(V[1:-2]) # [2] imprimir(V[::2]) # [1 3]
Seleccionar elementos vectoriales
Para seleccionar elementos vectoriales, puede utilizar un vector que contenga valores lógicos (expresiones). Se seleccionarán los elementos del vector que serán True en el vector con valores booleanos.
 

Ejemplo
importar numpy como np V = np.matriz([1,-2,3,-4,5]) # seleccione los dos primeros elementos del vector print(V[np.array((Verdadero, Verdadero, Falso, Falso, Falso))]) # [ 1 -2] # seleccionar elementos vectoriales positivos imprimir(V[V > 0]) # [1 3 5] # seleccionar elementos vectoriales pares imprimir(V[V % 2 == 0]) # [-2 -4]

Formas de crear arreglos y matrices

Otras formas útiles de crear arreglos y matrices.

Ejemplo
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
once
12
13
14
15
dieciséis
17
18
19
20
21
22
23
24
25
26
27
28
29
treinta
31
32
33
34
35
36
37
importar numpy como np # Matriz unidimensional de ceros imprimir(np.cero(5)) #[0. 0.0.0.0.] # Matriz bidimensional de ceros imprimir (np. ceros ((2, 3))) # [[0. 0.0.] #[0. 0.0.]] # matriz 3D de unidades imprimir(np.unos((2,3,4))) # [[[1. 1. 1. 1.] # [1. 1. 1. 1.] # [1. 1. 1. 1.]] # # [[1. 1. 1. 1.] # [1. 1. 1. 1.] # [1. 1. 1. 1.]]] # Matriz de ceros con indicación de tipo imprimir(np.ceros(5, dtype=np.int)) # [0 0 0 0 0] # Una matriz basada en una lista de listas imprimir(np.matriz([[1,2.0],[0,0],(1,3.)])) # [[1. 2.] #[0. 0.] # [1. 3.]] # Una matriz llena de elementos de una progresión aritmética a partir de 0 imprimir (np.arange (10)) # [0 1 2 3 4 5 6 7 8 9] # Progresión aritmética con indicación de tipo print(np.arange(2, 10, dtype=np.float)) # [2. 3. 4. 5. 6. 7. 8. 9.] # Progresión aritmética con diferencia no entera imprimir(np.arange(2, 3, 0.1)) # [2. 2,1 2,2 2,3 2,4 2,5 2,6 2,7 2,8 2,9] # Progresión aritmética con un número dado de términos imprimir(np.linspace(1., 4., 6)) # [1. 1.6 2.2 2.8 3.4 4. ]
Cero elementos de matriz
 
Función diferente de cero (V) 
El resultado es una tupla de arreglos. Cada matriz corresponde a un eje separado de la matriz original y contiene índices con elementos distintos de cero en esta matriz.
V - una matriz NumPy o un objeto similar a una matriz.
Devuelve una Python tupla (tupla) - tupla con matrices de índices de elementos distintos de cero de la matriz original V.
 
Función count_nonzero(V) 
Esta función se basa en el método integrado  __bool__() de los objetos de Python que comprueba si son verdaderos. De ello se deduce que la función  count_nonzero() es realmente capaz de trabajar no solo con números, sino también con cualquier objeto que pueda ser verdadero o falso.
V - una matriz NumPy o un objeto similar a una matriz.
La función devuelve el número de elementos de matriz distintos de cero a lo largo del eje especificado.

Matrices diagonales

La función  diag(V, k=0) le permite extraer una diagonal de una matriz, así como crear matrices diagonales a partir de matrices unidimensionales.
V - Un objeto similar a un arreglo, arreglos bidimensionales o unidimensionales, matrices, listas o tuplas, o cualquier función u objeto con un método que devuelve una lista o tupla.
k - índice de la diagonal (opcional).
El valor predeterminado es k = 0 que corresponde a la diagonal principal. Un valor k positivo mueve la diagonal hacia arriba, un valor negativo la mueve hacia abajo.

La función devuelve array NumPy (ndarray) - la diagonal de matriz especificada o una matriz diagonal de la matriz unidimensional especificada.

Arreglos 2D NumPy

Se accede a un elemento de una matriz bidimensional especificando las coordenadas del elemento, primero el número de fila y luego el número de columna. Las coordenadas están separadas por comas. 
Cualquier arreglo se puede convertir en un arreglo bidimensional usando la función reshape().

Ejemplo
1
2
3
4
5
6
7
8
# La función remodelar() cambia la forma de una matriz sin cambiar sus datos. x = np.arange(12).reformar(3, 4) imprimir(x) # [[ 0 1 2 3] # [4 5 6 7] # [8 9 10 11]] # Para acceder a un elemento, especifique sus coordenadas separadas por comas imprimir(x[1, 2]) # 6