Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Editando
NumPy
(sección)
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
== Ejemplos == ; Creación de matrices <syntaxhighlight lang="numpy"> >>> import numpy as np >>> x = np.array([1, 2, 3]) >>> x array([1, 2, 3]) >>> y = np.arange(10) # como en Python list(range(10)), pero devuelve una matriz de numpy >>> y array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) </syntaxhighlight> ; Operaciones básicas <syntaxhighlight lang="numpy"> >>> a = np.array([1, 2, 3, 6]) >>> b = np.linspace(0, 2, 4) # crea un vector con cuatro puntos equiespaciados, desde 0 hasta 2. >>> c = a - b >>> c array([ 1. , 1.33333333, 1.66666667, 4. ]) >>> a**2 array([ 1, 4, 9, 36]) </syntaxhighlight> ; Funciones universales <syntaxhighlight lang="numpy"> >>> a = np.linspace(-np.pi, np.pi, 100) >>> b = np.sin(a) >>> c = np.cos(a) </syntaxhighlight> ; Álgebra lineal <syntaxhighlight lang="numpy"> >>> from numpy.random import rand >>> from numpy.linalg import solve, inv >>> a = np.array([[1, 2, 3], [3, 4, 6.7], [5, 9.0, 5]]) >>> a.transpose() array([[ 1. , 3. , 5. ], [ 2. , 4. , 9. ], [ 3. , 6.7, 5. ]]) >>> inv(a) array([[-2.27683616, 0.96045198, 0.07909605], [ 1.04519774, -0.56497175, 0.1299435 ], [ 0.39548023, 0.05649718, -0.11299435]]) >>> b = np.array([3, 2, 1]) >>> solve(a, b) # resuelve la ecuación ax = b array([-4.83050847, 2.13559322, 1.18644068]) >>> c = rand(3, 3) * 20 # crea una matriz de 3x3 con valores aleatorios en el intervalo [0,1] escalados por 20 >>> c array([[ 3.98732789, 2.47702609, 4.71167924], [ 9.24410671, 5.5240412 , 10.6468792 ], [ 10.38136661, 8.44968437, 15.17639591]]) >>> np.dot(a, c) # multiplicación de matrices array([[ 53.61964114, 38.8741616 , 71.53462537], [ 118.4935668 , 86.14012835, 158.40440712], [ 155.04043289, 104.3499231 , 195.26228855]]) >>> a @ c # notación alternativa desde Python 3.5 y NumPy 1.10 array([[ 53.61964114, 38.8741616 , 71.53462537], [ 118.4935668 , 86.14012835, 158.40440712], [ 155.04043289, 104.3499231 , 195.26228855]]) </syntaxhighlight> ; Tensores <syntaxhighlight lang="numpy"> >>> M = np.zeros(shape=(2, 3, 5, 7, 11)) >>> T = np.transpose(M, (4, 2, 1, 3, 0)) >>> T.shape (11, 5, 3, 7, 2) </syntaxhighlight> ; Incorporación con OpenCV <syntaxhighlight lang="numpy"> >>> import numpy as np >>> import cv2 >>> r = np.reshape(np.arange(256*256)%256,(256,256)) # matriz de píxeles 256x256 con un gradiente horizontal de 0 a 255, para el canal del color rojo >>> g = np.zeros_like(r) # matriz del mismo tamaño que r pero rellena de ceros, para el canal del color verde >>> b = r.T # matriz r traspuesta que genera un gradiente vertical, para el canal del color azul >>> cv2.imwrite('gradients.png', np.dstack([b,g,r])) # las imágenes OpenCV se interpretan como BGR, la matriz agrupada se escribirá en un archivo PNG de 8 bit llamado 'gradients.png' True </syntaxhighlight> ;<nowiki> Búsqueda Nearest-Neighbor: algoritmo de Python iterativo y versión vectorizada de NumPy </nowiki> <syntaxhighlight lang="numpy"> >>> # # # Python iterativo puro # # # >>> points = [[9,2,8],[4,7,2],[3,4,4],[5,6,9],[5,0,7],[8,2,7],[0,3,2],[7,3,0],[6,1,1],[2,9,6]] >>> qPoint = [4,5,3] >>> minIdx = -1 >>> minDist = -1 >>> for idx, point in enumerate(points): # itera sobre todos los puntos dist = sum([(dp-dq)**2 for dp,dq in zip(point,qPoint)])**0.5 # calcula la distancia euclídea desde cada punto a q if dist < minDist or minDist < 0: # si se requiere, actualiza la distancia mínima y el índice del punto correspondiente minDist = dist minIdx = idx >>> print('Punto más cercano a q: {0}'.format(points[minIdx])) Punto más cercano a q: [3, 4, 4] >>> # # # Vectorización equivalente en NumPy # # # >>> import numpy as np >>> points = np.array([[9,2,8],[4,7,2],[3,4,4],[5,6,9],[5,0,7],[8,2,7],[0,3,2],[7,3,0],[6,1,1],[2,9,6]]) >>> qPoint = np.array([4,5,3]) >>> minIdx = np.argmin(np.linalg.norm(points-qPoint,axis=1)) # calcula todas las distancias euclídeas de una vez y devuelve el índice de la menor de ellas >>> print('Punto más cercano a q: {0}'.format(points[minIdx])) Punto más cercano a q: [3 4 4] </syntaxhighlight>
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Editando
NumPy
(sección)
Añadir idiomas
Añadir tema