En numpy, las arrays pueden tener tipos de datos que contienen campos, de forma análoga a las columnas en una hoja de cálculo. Un ejemplo es [(a, int), (b, float)]
, donde cada entrada en la array es un par de (int, float). Normalmente, se accede a estos atributos mediante búsquedas en diccionarios como arr['a'] and arr['b']
. Las arrays de registros permiten acceder a los campos como miembros de la array, utilizando arr.a and arr.b
.
numpy.recarray.ravel()
la función devuelve devuelve una array de registros planos contiguos, es decir, una array 1D con todos los elementos de la array de entrada y con el mismo tipo.
Sintaxis:
numpy.recarray.ravel([order])
Parámetros:
orden: [‘C’, ‘F’, ‘A’, ‘K’, opcional]
- ‘C’ significa indexar los elementos en fila principal, orden de estilo C, con el índice del último eje cambiando más rápido, de vuelta al índice del primer eje cambiando más lento.
- ‘F’ significa indexar los elementos en columna principal, orden de estilo Fortran, con el primer índice cambiando más rápido y el último índice cambiando más lento.
- ‘A’ significa leer los elementos en orden de índice similar a Fortran si a es contiguo a Fortran en la memoria, de lo contrario, en orden similar a C.
- ‘K’ significa leer los elementos en el orden en que ocurren en la memoria, excepto para invertir los datos cuando los pasos son negativos.
De forma predeterminada, se utiliza el orden de índice ‘C’.
Retorno: [array_like] Array aplanada que tiene el mismo tipo que la array de entrada y orden según su elección.
Código #1:
# Python program explaining # numpy.recarray.ravel() method # importing numpy as geek import numpy as geek # creating input array with 2 different field in_arr = geek.array([[(5.0, 2), (3.0, -4), (6.0, 9)], [(9.0, 1), (5.0, 4), (-12.0, -7)]], dtype =[('a', float), ('b', int)]) print ("Input array : ", in_arr) # convert it to a record array, # using arr.view(np.recarray) rec_arr = in_arr.view(geek.recarray) print("Record array of float: ", rec_arr.a) print("Record array of int: ", rec_arr.b) # applying recarray.ravel methods # to float record array out_arr = rec_arr.a.ravel() print ("Output flattenrd float array : ", out_arr) # applying recarray.ravel methods # to int record array out_arr = rec_arr.b.ravel() print ("Output flattenrd int array : ", out_arr)
Input array : [[( 5., 2) ( 3., -4) ( 6., 9)] [( 9., 1) ( 5., 4) (-12., -7)]] Record array of float: [[ 5. 3. 6.] [ 9. 5. -12.]] Record array of int: [[ 2 -4 9] [ 1 4 -7]] Output flattenrd float array : [ 5. 3. 6. 9. 5. -12.] Output flattenrd int array : [ 2 -4 9 1 4 -7]
Código #2:
Estamos aplicando numpy.recarray.ravel()
a toda la array de registros.
# Python program explaining # numpy.recarray.ravel() method # importing numpy as geek import numpy as geek # creating input array with 2 different field in_arr = geek.array([[(5.0, 2), (3.0, 4), (6.0, -7)], [(9.0, 1), (6.0, 4), (-2.0, -7)]], dtype =[('a', float), ('b', int)]) print ("Input array : ", in_arr) # convert it to a record array, # using arr.view(np.recarray) rec_arr = in_arr.view(geek.recarray) # applying recarray.ravel methods to record array out_arr = rec_arr.ravel() print ("Output array : ", out_arr)
Input array : [[( 5., 2) ( 3., 4) ( 6., -7)] [( 9., 1) ( 6., 4) (-2., -7)]] Output array : [( 5., 2) ( 3., 4) ( 6., -7) ( 9., 1) ( 6., 4) (-2., -7)]
Publicación traducida automáticamente
Artículo escrito por jana_sayantan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA