The most efficient and straightforward way to convert Numpy dtypes to Native Python data types is by using the “.item()” method.
The .item() method converts a NumPy scalar (a single value, not an array) into its equivalent native Python type.
The numpy scalar types include but are not limited to numpy.int32, which is equivalent to the int type in native Python. The numpy.float64’s equivalent is float in Python.
Always remember that the .item() method works on single or scalar values, including zero-dimensional arrays or individual elements of an array, and returns a native data type depending on the input value.
It performs an explicit conversion.
If you want to, let’s say, convert an entire numpy array to Python’s type list, then you must use the “tolist()” method. Here, you are converting the whole array, not an individual element.
Basic Numerical Types
import numpy as np # Integer types np_int8 = np.int8(10) py_int = np_int8.item() print(type(np_int8)) # <class 'numpy.int8'> print(type(py_int)) # <class 'int'> np_uint16 = np.uint16(1000) py_int16 = np_uint16.item() print(type(np_uint16)) # <class 'numpy.uint16'> print(type(py_int16)) # <class 'int'> np_float32 = np.float32(3.14) py_float = np_float32.item() print(type(np_float32)) # <class 'numpy.float32'> print(type(py_float)) # <class 'float'> np_float64 = np.float64(2.71828) py_float64 = np_float64.item() print(type(np_float64)) # <class 'numpy.float64'> print(type(py_float64)) # <class 'float'> np_complex = np.complex128(1+2j) py_complex = np_complex.item() print(type(np_complex)) # <class 'numpy.complex128'> print(type(py_complex)) # <class 'complex'>
In the above code, we defined different types of numeric values, including numpy.int8, numpy.float32, numpy.float64, and numpy.complex128, and converted into equivalent native types int, float, and complex.
Boolean Type
import numpy as np # Boolean type np_bool = np.bool_(True) # Note the underscore: np.bool_ py_bool = np_bool.item() print(type(np_bool)) # <class 'numpy.bool_'> print(type(py_bool)) # <class 'bool'>
You can define a boolean value in numpy using np.bool_. You can see that the .item() method converts numpy.bool_ type into bool type.
Datetime and Timedelta Types
import numpy as np
# Datetime and Timedelta Types
np_datetime = np.datetime64('2024-12-23T10:30:00')
py_datetime = np_datetime.item()
print(type(np_datetime)) # <class 'numpy.datetime64'>
print(type(py_datetime)) # <class 'datetime.datetime'>
np_timedelta = np.timedelta64(5, 'D') # 5 days
py_timedelta = np_timedelta.item()
print(type(np_timedelta)) # <class 'numpy.timedelta64'>
print(type(py_timedelta)) # <class 'datetime.timedelta'>
In this code, we defined np.datetime64 type and then converted it into datetime.datetime, which is the native type. And then converted np.timedelta64 type into datetime.timedelta.
Bytes Types
import numpy as np
np_string = np.bytes_("hello") # Note the underscore
py_string = np_string.item()
print(type(np_string)) # <class 'numpy.bytes_'>
print(type(py_string)) # <class 'bytes'>
These examples should give us a good understanding of how .item() works across different NumPy data types.


