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