NumPy ndarray.astype()

The numpy.ndarray.astype() method is used to cast a NumPy array to a specified data type. It allows for explicit type conversion while providing control over memory order, casting rules, and whether to create a copy of the array.

Syntax

</>
Copy
ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)

Parameters

ParameterTypeDescription
dtypedata-typeThe target data type to which the array elements should be converted.
order{‘C’, ‘F’, ‘A’, ‘K’}, optionalDefines memory layout order: 'C' (row-major), 'F' (column-major), 'A' (match input), 'K' (match memory layout).
casting{‘no’, ‘equiv’, ‘safe’, ‘same_kind’, ‘unsafe’}, optionalDefines casting rules, controlling whether conversions are allowed based on safety.
subokbool, optionalIf True, subclasses of ndarray are preserved; otherwise, a base ndarray is returned.
copybool, optionalIf True, a copy of the array is always created; otherwise, it avoids copying when possible.

Return Value

Returns a new array with elements cast to the specified dtype. If copy=False and conversion is not required, the original array is returned.


Examples

1. Converting an Integer Array to Float

This example converts an integer array to a float array using astype().

</>
Copy
import numpy as np

# Creating an integer array
arr = np.array([1, 2, 3, 4, 5])

# Converting to float type
float_arr = arr.astype(float)

# Printing original and converted arrays
print("Original array:", arr)
print("Converted array (float):", float_arr)

Output:

Original array: [1 2 3 4 5]
Converted array (float): [1. 2. 3. 4. 5.]

The integer values are successfully converted to floating-point numbers.

2. Converting a Float Array to Integer

This example demonstrates truncation when converting float values to integers.

</>
Copy
import numpy as np

# Creating a float array
arr = np.array([1.9, 2.8, 3.7, 4.5])

# Converting to integer type
int_arr = arr.astype(int)

# Printing original and converted arrays
print("Original array:", arr)
print("Converted array (int):", int_arr)

Output:

Original array: [1.9 2.8 3.7 4.5]
Converted array (int): [1 2 3 4]

Note that floating-point values are truncated, not rounded, during conversion.

3. Converting an Array to Boolean

This example converts numerical values to boolean, where nonzero values become True and zero becomes False.

</>
Copy
import numpy as np

# Creating an integer array
arr = np.array([0, 1, 2, 0, -3, 4])

# Converting to boolean type
bool_arr = arr.astype(bool)

# Printing original and converted arrays
print("Original array:", arr)
print("Converted array (boolean):", bool_arr)

Output:

Original array: [ 0  1  2  0 -3  4]
Converted array (boolean): [False  True  True False  True  True]

Zeros are converted to False, and all other values are converted to True.

4. Using casting Parameter in ndarray.astype()

The casting parameter controls the safety of type conversions.

</>
Copy
import numpy as np

# Creating a float array
arr = np.array([1.2, 2.5, 3.8])

# Safe casting to integer (prevents unsafe conversions)
try:
    int_arr = arr.astype(int, casting='safe')
    print("Converted array:", int_arr)
except TypeError as e:
    print("Error:", e)

Output:

Converted array: [1 2 3]

The safe casting rule ensures that only safe conversions occur.