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!
== Características == NumPy apunta a la implementación de Python de referencia [[CPython]], un intérprete de [[código de bytes]] no optimizador. Los algoritmos matemáticos escritos para esta versión de Python a menudo se ejecutan mucho más lento que los equivalentes [[Compilador|compilados]]. NumPy aborda el problema de la lentitud en parte al proporcionar matrices multidimensionales, funciones y operadores que operan de manera eficiente en matrices, lo que requiere reescribir algo de código, principalmente [[ Bucle interior |bucles internos]], usando NumPy. El uso de NumPy en Python brinda una funcionalidad comparable a [[MATLAB]], ya que ambos se interpretan,<ref>{{Cita web|url=https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html|título=NumPy for Matlab users|fechaacceso=2017-02-02|autor=The SciPy Community|fechaarchivo=20 de mayo de 2017|urlarchivo=https://web.archive.org/web/20170520093610/https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html|deadurl=yes}}</ref> y ambos permiten al usuario escribir programas rápidos siempre que la mayoría de las operaciones funcionen en vectores o matrices en lugar de [[Variable (programación)|escalares]]. En comparación, MATLAB cuenta con una gran cantidad de cajas de herramientas adicionales, en particular [[Simulink]], mientras que NumPy está intrínsecamente integrado con Python, un lenguaje de programación más moderno y completo. Además, se encuentran disponibles paquetes complementarios de Python; [[SciPy]] es una biblioteca que agrega más funcionalidad similar a MATLAB y [[Matplotlib]] es un paquete de trazado que proporciona una funcionalidad de trazado similar a MATLAB. Internamente, tanto MATLAB como NumPy se basan en [[Basic Linear Algebra Subprograms|BLAS]] y [[LAPACK]] para cálculos de álgebra lineal eficientes. Los [[Binding|bindings]] de Python de la ampliamente utilizada biblioteca de [[Visión artificial|visión por computadora]] [[OpenCV]] utilizan matrices NumPy para almacenar y operar con datos. Dado que las imágenes con múltiples canales se representan simplemente como matrices tridimensionales, indexar, cortar o [[Máscara (informática)|enmascarar]] con otras matrices son formas muy eficientes de acceder a píxeles específicos de una imagen. La matriz NumPy como estructura de datos universal en OpenCV para imágenes, [[ Detección de puntos de interés |puntos de características]] extraídos, [[Núcleo (procesamiento digital de imágenes)|núcleos de filtrado]] y muchos más simplifica enormemente el flujo de trabajo de programación y la [[Depurador|depuración]] . === La estructura de datos ndarray === La funcionalidad principal de NumPy es su estructura de datos "ndarray", para una matriz de ''n'' dimensiones. Estas matrices son vistas escalonadas de la memoria.<ref name="cise"/> A diferencia de la estructura de datos de lista incorporada de Python, estas matrices se escriben de forma homogénea: todos los elementos de una única matriz deben ser del mismo tipo. Dichas matrices también pueden ser vistas en búferes de memoria asignados por extensiones de [[C (lenguaje de programación)|C]] o [[C++]], [[Cython]] y [[Fortran]] al intérprete CPython sin la necesidad de copiar datos, lo que brinda un mayor grado de compatibilidad con las bibliotecas numéricas existentes. Esta funcionalidad es explotada por el paquete [[SciPy]], que incluye varias de estas bibliotecas (en particular [[Basic Linear Algebra Subprograms|BLAS]] y [[LAPACK]]). NumPy tiene soporte incorporado para ndarrays [[Archivo proyectado en memoria|mapeados en]] memoria.<ref name="cise"/> === Limitaciones === Insertar o agregar entradas a una matriz no es tan trivialmente posible como lo es con las listas de Python. La <tt>rutina np.pad(...)</tt> para extender matrices crea nuevas matrices con la forma deseada y los valores de relleno, copia la matriz dada en la nueva y la devuelve. La <tt>operación np.concatenate([a1, a2])de</tt> NumPy no vincula realmente las dos matrices, sino que devuelve una nueva, llena con las entradas de ambas matrices dadas en secuencia. La remodelación de las dimensiones de una matriz con <tt>np.reshape(...)</tt> solo es posible siempre que el número de elementos de la matriz no cambie. Estas circunstancias se originan en el hecho de que las matrices de NumPy deben ser vistas en búferes de memoria contiguos. Un paquete de reemplazo llamado Blaze intenta superar esta limitación.<ref>{{Cita web|url=https://blaze.readthedocs.io/|título=Blaze Ecosystem Docs|fechaacceso=2016-07-17|sitioweb=Read the Docs}}</ref> Los algoritmos que no se pueden expresar como una operación vectorizada normalmente se ejecutarán lentamente porque deben implementarse en "Python puro", mientras que la vectorización puede aumentar la complejidad de la memoria de algunas operaciones de constante a lineal, porque se deben crear matrices temporales que sean tan grandes como las entradas. Varios grupos han implementado la compilación en tiempo de ejecución de código numérico para evitar estos problemas. Las soluciones de código abierto que interactúan con NumPy incluyen <code>scipy.weave</code>, numexpr<ref>{{Cita web|url=https://github.com/pydata/numexpr|título=numexpr|fechaacceso=2014-03-08|autor=Francesc Alted}}</ref> y [[Numba]].<ref>{{Cita web|url=http://numba.pydata.org/|título=Numba|fechaacceso=2014-03-08}}</ref> [[Cython]] y [[Pythran]] son otras alternativas de compilación estática.
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