Skip to main content

Introduction to Python NumPy Data Types

Python NumPy Data Types​

Data types are an essential concept as they determine how the elements of an array are stored in memory and how they are interpreted during mathematical operations.

NumPy provides a rich set of data types that offer flexibility and control over memory usage and numerical precision.

Here are some commonly used data types in NumPy:

int​

Integer data types

  • int8, int16, int32, int64: Signed integers with different bit sizes.

uint​

Unsigned integer data types

  • uint8, uint16, uint32, uint64: Unsigned integers with different bit sizes.

float​

Floating-point data types

float16, float32, float64: Floating-point numbers with different precisions.

complex​

Complex number data types

  • complex64, complex128: Complex numbers with different precisions. bool: Boolean data type, representing True or False values.

string​

String data types

  • str, unicode: String data types, where str represents a fixed-length ASCII string, and unicode represents a fixed-length Unicode string.

NumPy data types can be specified when creating arrays using the dtype parameter.

As an example:

import numpy as np

# Create an array with specific data type
arr = np.array([1, 2, 3], dtype=np.int32)

You can also check the data type of an existing array using the dtype attribute:

import numpy as np

arr = np.array([1, 2, 3])
print(arr.dtype) # Output: int64

NumPy also provides functions to convert data types, such as astype(), which allows you to cast an array to a different data type:

import numpy as np

arr = np.array([1, 2, 3])
arr_float = arr.astype(np.float32) # Convert to float32 data type

What if a Value Can Not Be Converted?​

If a value cannot be converted to the desired data type in NumPy, a ValueError will be raised.

The ValueError indicates that the value is not compatible with the specified data type, either due to its format, range, or other constraints.

Here are a few scenarios where a ValueError may occur:

Invalid Format​

If the value is not in the expected format for the target data type, such as trying to convert a string that cannot be interpreted as a numeric value.

import numpy as np

value = "abc"
arr = np.array(value, dtype=np.float32) # Raises ValueError: could not convert string to float

Out of Range​

If the value exceeds the range that can be represented by the target data type, such as trying to convert a number larger than the maximum value allowed for a specific data type.


import numpy as np

value = 1e100
arr = np.array(value, dtype=np.int8) # Raises ValueError: value out of range for dtype('int8')

Incompatible Types​

If the value is not compatible with the specified data type, such as trying to convert a non-numeric value to a numeric data type.

import numpy as np

value = "Hello"
arr = np.array(value, dtype=np.int32) # Raises ValueError: invalid literal for int() with base 10: 'Hello'

To handle such cases, it is important use error handling mechanisms like try-except blocks to catch the ValueError and handle it gracefully in your code.

import numpy as np

value = "abc"
try:
arr = np.array(value, dtype=np.float32)
except ValueError as e:
print("Error occurred:", e)