![]() |
VOOZH | about |
to_numpy() method allows you to convert a Pandas DataFrame into a NumPy array, enabling efficient numerical operations, faster computations, and smooth interoperability with libraries that require NumPy arrays. Example:
<class 'numpy.ndarray'> [[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]]
DataFrame.to_numpy(dtype=None, copy=False)
Parameters:
Returns: A NumPy array representation of the DataFrame's values, excluding index and column labels.
Example 1: Here, we convert only selected columns ('a' and 'c') from the DataFrame into a NumPy array. This is useful when you want to work with only a subset of columns.
<class 'numpy.ndarray'> [[ 1 3] [ 4 6] [ 7 9] [10 12]]
Explanation: df[['a', 'c']] extracts only columns 'a' and 'c'. The .to_numpy() method then converts this selection into a 2D NumPy array containing just the values from those columns, without row indices or column headers.
Example 2: This example shows how .to_numpy() handles DataFrames with mixed numeric types. The resulting NumPy array will upcast data to a common type to accommodate all values (e.g., float).
float64 [[ 1. 2. 3. ] [ 4. 5. 6.5] [ 7. 8.5 9. ] [10. 11. 12. ]]
Explanation: The DataFrame has both integers and floats like 6.5 and 8.5 . When converted to a NumPy array, Pandas upcasts all values to a common type (float64).
Example 3: In this example, we convert the entire DataFrame to a NumPy array and explicitly set the data type to float32. This can help save memory or match data types required by other libraries.
float32 [[ 1. 2. 3.] [ 4. 5. 6.] [ 7. 8. 9.] [10. 11. 12.]]
Explanation: dtype parameter forces conversion of the NumPy array to float32, converting all values including integers to 32-bit floats.
Example 4: This example shows how to convert a DataFrame containing mixed data types (integers, strings, and floats) into a NumPy array of strings
<U6 [['1' 'apple' '3.5'] ['4' 'banana' '6.0'] ['7' 'cherry' '9.1'] ['10' 'date' '12.0']]
Explanation:dtype='str' converts all values to Unicode strings e.g., <U6 means length 6 , turning numbers like 6 and 12 into '6.0' and '12.0' for consistent string typing.