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