# Data type Object (dtype) in NumPy Python

Last Updated : 11 Aug, 2021

Every ndarray has an associated data type (dtype) object. This data type object (dtype) informs us about the layout of the array. This means it gives us information about:

• Type of the data (integer, float, Python object, etc.)
• Size of the data (number of bytes)
• The byte order of the data (little-endian or big-endian)
• If the data type is a sub-array, what is its shape and data type?

The values of a ndarray are stored in a buffer which can be thought of as a contiguous block of memory bytes. So how these bytes will be interpreted is given by the dtype object.

1. Constructing a data type (dtype) object: A data type object is an instance of the NumPy.dtype class and it can be created using NumPy.dtype.

Parameters:

• obj: Object to be converted to a data-type object.
• align: bool, optional
Add padding to the fields to match what a C compiler would output for a similar C-struct.
• copy: bool, optional
Make a new copy of the data-type object. If False, the result may just be a reference to a built-in data-type object.

## 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'``])`

Output:

`int16`

## Python

Output:

```Byte order is: >
Size is: 4
Name of data type is: int32```

The type specifier (i4 in the above case) can take different forms:

• b1, i1, i2, i4, i8, u1, u2, u4, u8, f2, f4, f8, c8, c16, a
(representing bytes, ints, unsigned ints, floats, complex and
fixed-length strings of specified byte lengths)
• int8,…,uint8,…,float16, float32, float64, complex64, complex128
(this time with bit sizes)

Note:

`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) `

Output:

```type is:
dtype is:  int32```

2. Data type Objects with Structured Arrays: Data type objects are useful for creating structured arrays.  A structured array is one that contains different types of data. Structured arrays can be accessed with the help of fields.
A field is like specifying a name to the object. In the case of structured arrays, the dtype object will also be structured.

## 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'``])`

Output:

`('<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'``])`

Output:

```('John', [ 6.,  7.])
Grades of John are:  [ 6.  7.]
Names are:  ['Sarah' 'John']```

References :

Previous
Next