stringtranslate.com

Lenguaje de datos Perl

Perl Data Language (abreviado PDL ) es un conjunto de extensiones de programación de matrices de software gratuito para el lenguaje de programación Perl . PDL extiende las estructuras de datos integradas en Perl para incluir grandes matrices multidimensionales y agrega funcionalidad para manipular esas matrices como objetos vectoriales. También proporciona herramientas para el procesamiento de imágenes , aprendizaje automático , modelado por computadora de sistemas físicos y trazado y presentación gráfica. Las operaciones simples se vectorizan automáticamente en matrices completas y se admiten operaciones de dimensiones superiores (como la multiplicación de matrices).

Diseño de lenguaje

PDL es un lenguaje de programación de matrices vectorizadas : la sintaxis de expresión es una variación de la notación vectorial matemática estándar , de modo que el usuario puede combinar y operar en matrices grandes con expresiones simples. En este sentido, PDL sigue los pasos del lenguaje de programación APL , y ha sido comparado con lenguajes comerciales como MATLAB e Interactive Data Language , y con otros lenguajes libres como NumPy y Octave . [2] A diferencia de MATLAB e IDL, PDL permite una gran flexibilidad en la indexación y vectorización: por ejemplo, si una subrutina normalmente opera en una matriz de matriz 2-D , pasarle un cubo de datos 3-D generalmente hará que suceda la misma operación. cada capa 2-D del cubo. [3]

PDL toma prestados de Perl al menos tres tipos básicos de estructura de programa: programación imperativa , programación funcional y programación en canalización que pueden combinarse. Las subrutinas se pueden cargar mediante un mecanismo de carga automática incorporado o mediante el mecanismo habitual del módulo Perl.

Gráficos

Un gráfico generado usando PDL

Fiel a las raíces del lenguaje pegamento de Perl, PDL toma prestado de varios módulos diferentes para soporte de gráficos y trazado. NetPBM proporciona E/S de archivos de imágenes (aunque FITS es compatible de forma nativa). Los módulos Gnuplot , PPLlot , PGPLOT y Prima son compatibles con gráficos 2D y aplicaciones de trazado, y Gnuplot y OpenGL son compatibles con trazado y renderizado 3D.

E/S

PDL proporciona funciones para leer y escribir muchos formatos de datos abiertos, incluidos JPEG , PNG , GIF , PPM , MPEG , FITS , NetCDF , GRIB , archivos binarios sin formato y tablas ASCII delimitadas. Los programadores de PDL pueden utilizar las bibliotecas de E/S de CPAN Perl para leer y escribir datos en cientos de formatos de archivos estándar y especializados.

Aprendizaje automático

PDL se puede utilizar para el aprendizaje automático . Incluye módulos que se utilizan para realizar agrupaciones clásicas de k-medias o métodos de modelado lineal generales y generalizados como ANOVA, regresión lineal, PCA y regresión logística. Ejemplos de uso de PDL para tareas de modelado de regresión incluyen la evaluación de la asociación entre el nivel educativo y las diferencias de ascendencia de los padres, [4] la comparación de perfiles de interacción ARN-proteína que necesita una normalización basada en regresión [5] y el análisis de espectros de galaxias. [6]

perldl

Una instalación de PDL generalmente viene con un shell interactivo conocido como perldl , que puede usarse para realizar cálculos simples sin necesidad de que el usuario cree un archivo de programa Perl. Una sesión típica de perldl sería similar a la siguiente:

perldl > $x = pdl [[ 1 , 2 ], [ 3 , 4 ]];       perldl > $y = pdl [[ 5 , 6 , 7 ],[ 8 , 9 , 0 ]];        perldl > $z = $x x $y ;     perldl > p $z ;  [ [ 21 24 7 ] [ 47 54 21 ] ]      

Los comandos utilizados en el shell son declaraciones de Perl que se pueden utilizar en un programa con PDLmódulo incluido. xes un operador sobrecargado para la multiplicación de matrices y pen el último comando hay un atajo para print.

Implementación

El núcleo de PDL está escrito en C. La mayor parte de la funcionalidad está escrita en PP , un metalenguaje específico de PDL que maneja la vectorización de fragmentos de C simples y los interconecta con el lenguaje host Perl a través del compilador XS de Perl . Algunos módulos están escritos en Fortran , con una capa de interfaz C/PP. Muchas de las funciones proporcionadas están escritas en el propio PDL. PP está disponible para que el usuario escriba extensiones de lenguaje C en PDL. También hay un módulo Inline (Inline::Pdlpp) que permite insertar definiciones de funciones PP directamente en un script Perl; el código relevante se compila a bajo nivel y se pone a disposición como una subrutina Perl.

La API de PDL utiliza la funcionalidad básica orientada a objetos de Perl 5: PDL define un nuevo tipo de objeto escalar de Perl ( llamado del mismo nombre "PDL" o "ndarray") que actúa como un escalar de Perl, pero que contiene una matriz tipificada convencional de valores numéricos o de caracteres. Todos los operadores estándar de Perl están sobrecargados para que puedan usarse en objetos PDL de forma transparente, y los PDL se pueden mezclar y combinar con escalares normales de Perl. Los módulos principales proporcionan varios cientos de métodos de objetos para operar en PDL.

Ver también

Referencias

  1. ^ . 12 de mayo de 2024 https://github.com/PDLPorters/pdl/releases/tag/2.089 . Consultado el 20 de junio de 2024 . {{cite web}}: Falta o está vacío |title=( ayuda )
  2. ^ "Devolver a Perl la cima en los campos de la informática científica y financiera".
  3. ^ "Documentación en línea de PDL (PDL :: sección de subprocesos)".
  4. ^ Abdellaoui A, Hottenga JJ, Willemsen G, Bartels M, van Beijsterveldt T, Ehli EA, Davies GE, Brooks A, Sullivan PF, Penninx BW, de Geus EJ, Boomsma DI (marzo de 2015). "El nivel educativo influye en los niveles de homocigosidad a través de la migración y el apareamiento selectivo". MÁS UNO . 10 (3): e0118935. Código Bib : 2015PLoSO..1018935A. doi : 10.1371/journal.pone.0118935 . PMC 4347978 . PMID  25734509. 
  5. ^ Wang T, Xie Y, Xiao G (enero de 2014). "dCLIP: un enfoque computacional para análisis comparativos CLIP-seq". Biología del genoma . 15 (1): R11. doi : 10.1186/gb-2014-15-1-r11 . PMC 4054096 . PMID  24398258. 
  6. ^ Sánchez SF, Pérez E, Sánchez-Blázquez P, González JJ, Rosález-Ortega FF, Cano-Dí az M, López-Cobá C, Marino RA, Gil de Paz A, Mollá M, López-Sánchez AR, Ascasibar Y, Barrera-Ballesteros J (abril de 2016). "Pipe3D, un pipeline para analizar datos de espectroscopía de campo integral: I. Nueva filosofía de ajuste de FIT3D". Revista Mexicana de Astronomía y Astrofísica . 52 : 21–53. arXiv : 1509.08552 . Código Bib : 2016RMxAA..52...21S.

enlaces externos