Interfaces de array en Julia

Una interfaz de array es un contrato sintáctico para arrays en Julia que deben seguir. Este artículo describe los diversos métodos que se pueden adoptar para construir interfaces de arrays en Julia. También explica cómo realizar la indexación en una interfaz de array para acceder a sus elementos.

Se puede construir una interfaz de array tomando una array estándar y vinculando claves personalizadas junto con los índices de cada dimensión. Esto se puede lograr usando el paquete AxisIndices .

Construcción de un arreglo usando la función AxisArray:

Se puede crear una array usando la función AxisArray() presente en el paquete AxisIndices de Julia. 

Ejemplo: 

Julia

# Julia program to declare an array interface  
  
# Importing AxisIndices package
using AxisIndices
  
# Declare array
arr = [5 6; 7 8];
  
# Using AxisArray function to return an array 
# with its dimension names and axis values
axis = AxisArray(arr, ["row1", "row2"], 
                      [:col1, :col2])

Producción:

Una interfaz de array también se puede inicializar utilizando la siguiente sintaxis:

Sintaxis:

Array{T}(undef, dims)

Ejemplo:

Julia

# Julia program to declare an array interface  
  
# Importing AxisIndices package
using AxisIndices
  
# Declare array
arr = [5 6; 7 8];
  
# Using AxisArray function to return an array 
# with its dimension names and axis values
axis = AxisArray{Int}(undef, ["row1", "row2"], 
                             [:col1, :col2]);
  
axis[:, :] = arr;
  
axis

Producción:

Construcción de un arreglo usando la función NamedAxisArray():

A cada dimensión o eje de la interfaz de array se le pueden dar nombres usando NamedAxisArray presente en el paquete AxisIndices de Julia.

Ejemplo:

Julia

# Julia program to declare an array interface  
  
# Importing AxisIndices package
using AxisIndices
  
# Declare array
arr = [5 6; 7 8];
  
# Using AxisArray function to return an array 
# with its dimension names and axis values
axis = AxisArray(arr, ["row1", "row2"], 
                      [:col1, :col2])
  
# Using NamedAxisArray function
# to return an array with named axes
axis_named = NamedAxisArray{(:xdim, :ydim)}(axis)

Producción:

Construcción de un arreglo usando la función MetaAxisArray():

Los metadatos también se pueden vincular con la interfaz de array.

Ejemplo:

Julia

# Julia program to declare an array interface  
  
# Importing AxisIndices package
using AxisIndices
  
# Declare array
arr = [5 6; 7 8];
  
# Using MetaAxisArray function to return 
# an array with its dimension names, 
# axis values, metadata
axis_meta = MetaAxisArray(arr, (["row1", "row2"], 
                                [:col1, :col2]), 
                          metadata = "Array Interface")

Producción:

Indexación de arrays

Indexación en una interfaz de array usando el paquete Unitful:

Una interfaz de array se puede indexar al igual que las arrays estándar en Julia. Esto se puede lograr usando el paquete Unitful.

Ejemplo:

Julia

# Julia program to perform indexing 
# in an array interface
  
# Importing AxisIndices package
using AxisIndices
  
# Importing Unitful package
import Unitful: m
  
# Using reshape function 
# to return an array with 
# its specified dimensions
arr = reshape(1:6, 2, 3);
  
# Using AxisArray function to return 
# an array with its dimension names 
# and axis values
axis = AxisArray(arr, ((1:2)m,
                ["col1", "col2", "col3"]))

Producción:

Ejemplo:

Julia

# Julia program to perform indexing 
# in an array interface 
  
# Importing AxisIndices package
using AxisIndices
  
# Importing Unitful package
import Unitful: m
  
# Using reshape function
# to return an array
# with its specified dimensions
arr = reshape(1:6, 2, 3);
  
# Using AxisArray function
# to return an array 
# with its dimension names and axis values
axis = AxisArray(arr, ((1:2)m, 
                ["col1", "col2", "col3"]))
  
# displaying only the first row 
# and all the columns
axis[1,:]

Producción:

Ejemplo:

Julia

# Julia program to perform indexing 
# in an array interface 
  
# Importing AxisIndices package
using AxisIndices
  
# Importing Unitful package
import Unitful: m
  
# Using reshape function to return 
# an array with its specified dimensions
arr = reshape(1:6, 2, 3);
  
# Using AxisArray function to return
# an array with its dimension names 
# and axis values
axis = AxisArray(arr, ((1:2)m, 
                ["col1", "col2", "col3"]))
  
# displaying the first two rows
# and the first two columns
axis[1:2, 1:2]

Producción:

Ejemplo:

Julia

# Julia program to perform indexing
# in an array interface
  
# Importing AxisIndices package
using AxisIndices
  
# Importing Unitful package
import Unitful: m
  
# Using reshape function to return 
# an array with its specified dimensions
arr = reshape(1:6, 2, 3);
  
# Using AxisArray function to return
# an array with its dimension names and axis values
axis = AxisArray(arr, ((1:2)m, 
                ["col1", "col2", "col3"]))
  
# displaying the first 3 elements of the array
axis[1:3]

Producción:

Indexación en una interfaz de array usando claves:

Una interfaz de array se puede indexar con la ayuda de claves.

Ejemplo :

Julia

# Julia program to perform indexing 
# in an array interface
  
# Importing AxisIndices package
using AxisIndices
  
# Importing Unitful package
import Unitful: m
  
# Using reshape function to return
# an array with its specified dimensions
arr = reshape(1:6, 2, 3);
  
# Using AxisArray function to return
# an array with its dimension names and axis values
axis = AxisArray(arr, ((1:2)m, 
                ["col1", "col2", "col3"]))
  
# accessing an element using its specified keys
axis[1m, "col1"]

Producción:

Indexación en una interfaz de array mediante funciones de filtración: 

Una interfaz de array también se puede indexar mediante funciones que filtran las claves.

Ejemplo:

Julia

# Julia program to perform indexing
# in an array interface
  
# Importing AxisIndices package
using AxisIndices
  
# Importing Unitful package
import Unitful: m
  
# Using reshape function to return 
# an array with its specified dimensions
arr = reshape(1:6, 2, 3);
  
# Using AxisArray function to return 
# an array with its dimension names and axis values
axis = AxisArray(arr, ((1:2)m, 
                ["col1", "col2", "col3"]))
  
# Applying filters to the keys
axis[!=(1m), in(["col1", "col2"])]

Producción:

Publicación traducida automáticamente

Artículo escrito por manandeep1610 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *