Julia

Concatenar vectores en Julia

Al trabajar con vectores es habitual tener que combinarlos. Veamos las opciones que tenemos para concatenar vectores en Julia.

Concatenar vectores con las funciones vcat() y hcat()

Las funciones estándar para concatenar el contenido de diferentes estructuras de datos en Julia son vcat(), para combinar conjuntos de datos en vertical o por filas, y hcat(), para cuando se desea combinar en horizontal o por columnas. Funciones que también sirven para concatenar DataFrames. Así para concatenar vectores en Julia se debería usar la función vcat() con los vectores a concatenar como parámetros

julia> var1 = [1, 2, 3];

julia> var2 = [4, 5, 6];

julia> vcat(var1, var2)
6-element Vector{Int64}:
 1
 2
 3
 4
 5
 6

En el caso de que se usase la función hcat() no se obtendría un vector, sino una matriz. Ya que los vectores de Julia son verticales por defecto.

julia> hcat(var1, var2)
3×2 Matrix{Int64}:
 1  4
 2  5
 3  6

Solamente se debería usar hcat() cuando el vector ha sido transpuesto previamente.

Concatenar con la función cat()

La función cat() es una generalización de vcat() y hcat() en la que se indica mediante la propiedad dims cuál es la dimensión que se desea concatenar. Siendo 1 el valor para concatenar verticalmente y 2 para horizontal. Esta propiedad debe ser la última que se indique después de los conjuntos de datos a concatenar. Así, para replicar el comportamiento de vcat() se debería hacer.

julia> cat(var1, var2, dims=1)
6-element Vector{Int64}:
 1
 2
 3
 4
 5
 6

Mientras que para replicar el comportamiento de hcat() lo que se debería escribir es:

julia> cat(var1, var2, dims=2)
3×2 Matrix{Int64}:
 1  4
 2  5
 3  6

Pudiendo de esta manera usar una única función para ambos casos y trabajar con más dimensiones cuando es necesario.

Uso de corchetes

En Julia también es posible concatenar vectores y matrices usando corchetes. Una notación compacta que permite ahorrar código. En este caso solamente hay que indicar los objetos dentro de los corchetes, de forma análoga a cómo se crean los vectores, separados por punto y coma, para concatenar verticalmente, o coma, para concatenar horizontalmente. De este modo se puede replicar el funcionamiento de vcat() con la siguiente línea.

julia> [var1; var2]
6-element Vector{Int64}:
 1
 2
 3
 4
 5
 6

Lo que es más compacto que usar cualquiera de las funciones anteriores. Por otro lado, para replicar el funcionamiento de hcat() se podría conseguir con

julia> [var1 var2]
3×2 Matrix{Int64}:
 1  4
 2  5
 3  6

Conclusiones

En esta entrada hemos visto algunas opciones que tenemos para concatenar vectores en Julia, una operación sencilla, pero que es necesario hacer de forma habitual.

Imagen de Lubos Houska en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Analytics Lane lanza ScoreFlow, un SaaS para construir y desplegar scorecards de crédito

En Analytics Lane seguimos evolucionando nuestras herramientas y damos un paso más con el lanzamiento…

4 días ago

DBSCAN y la selección de ε: teoría, intuición y aplicación práctica

Cuando hablamos de clustering, lo primero que viene a la mente suele ser k-means. Pero…

5 días ago

El bestiario de los indicadores económicos absurdos: El zoo patrio

Cualquier país desarrollado tiene sus propios indicadores folclóricos. España, por motivos que tienen mucho que…

1 semana ago

Por qué el banco te ofrece un 3% TAE y no es lo que parece

Entras a la web de tu banco. En la página principal, un banner llamativo: “Depósito…

2 semanas ago

Analytics Lane lanza la versión 1.3 del laboratorio con nuevas herramientas de evaluación de modelos y utilidades prácticas

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.3, disponible…

2 semanas ago

This website uses cookies.