Cada ndarray tiene un objeto de tipo de datos asociado (dtype). Este objeto de tipo de datos (dtype) nos informa sobre el diseño de la array. Esto significa que nos da información sobre:
- Tipo de datos (entero, flotante, objeto de Python, etc.)
- Tamaño de los datos (número de bytes)
- El orden de bytes de los datos (little-endian o big-endian)
- Si el tipo de datos es un subarreglo, ¿cuál es su forma y tipo de datos?
Los valores de un ndarray se almacenan en un búfer que se puede considerar como un bloque contiguo de bytes de memoria. Entonces, cómo se interpretarán estos bytes está dado por el objeto dtype.
1. Construcción de un objeto de tipo de datos (dtype): un objeto de tipo de datos es una instancia de la clase NumPy.dtype y se puede crear usando NumPy.dtype.
Parámetros:
- obj: Objeto que se convertirá en un objeto de tipo de datos.
- align : bool, opcional
Agregue relleno a los campos para que coincida con lo que generaría un compilador de C para una estructura C similar. - copy : bool, opcional
Realiza una nueva copia del objeto de tipo de datos. Si es False, el resultado puede ser solo una referencia a un objeto de tipo de datos incorporado.
Python
# Python Program to create a data type object import numpy as np # np.int16 is converted into a data type object. print(np.dtype(np.int16))
Producción:
int16
Python
# Python Program to create a data type object # containing a 32 bit big-endian integer import numpy as np # i4 represents integer of size 4 byte # > represents big-endian byte ordering and < represents little-endian encoding. # dt is a dtype object dt = np.dtype('>i4') print("Byte order is:",dt.byteorder) print("Size is:",dt.itemsize) print("Data type is:",dt.name)
Producción:
Byte order is: > Size is: 4 Name of data type is: int32
la
- b1, i1, i2, i4, i8, u1, u2, u4, u8, f2, f4, f8, c8, c16, a
(que representan bytes, enteros, enteros sin signo, flotantes,
strings complejas y de longitud fija de longitudes de bytes especificadas ) - int8,…,uint8,…,float16, float32, float64, complex64, complex128
(esta vez con tamaños de bits )
Nota:
dtype is different from type.
Python
# Python program to differentiate # between type and dtype. import numpy as np a = np.array([1]) print("type is: ",type(a)) print("dtype is: ",a.dtype)
Producción:
type is: dtype is: int32
2. Objetos de tipo de datos con arrays estructuradas: los objetos de tipo de datos son útiles para crear arrays estructuradas. Una array estructurada es aquella que contiene diferentes tipos de datos. Se puede acceder a las arrays estructuradas con la ayuda de los campos.
Un campo es como especificar un nombre para el objeto. En el caso de arrays estructuradas, el objeto dtype también estará estructurado.
Python
# Python program for demonstrating # the use of fields import numpy as np # A structured data type containing a 16-character string (in field ‘name’) # and a sub-array of two 64-bit floating-point number (in field ‘grades’): dt = np.dtype([('name', np.unicode_, 16), ('grades', np.float64, (2,))]) # Data type of object with field grades print(dt['grades']) # Data type of object with field name print(dt['name'])
Producción:
('<f8', (2,))
Python
# Python program to demonstrate # the use of data type object with structured array. import numpy as np dt = np.dtype([('name', np.unicode_, 16), ('grades', np.float64, (2,))]) # x is a structured array with names and marks of students. # Data type of name of the student is np.unicode_ and # data type of marks is np.float(64) x = np.array([('Sarah', (8.0, 7.0)), ('John', (6.0, 7.0))], dtype=dt) print(x[1]) print("Grades of John are: ",x[1]['grades']) print("Names are: ",x['name'])
Producción:
('John', [ 6., 7.]) Grades of John are: [ 6. 7.] Names are: ['Sarah' 'John']
Referencias :
Este artículo es una contribución de Ayushi Asthana . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA