How to Convert Pandas DataFrame to NumPy Array (With Examples)

Converting a Pandas DataFrame to a NumPy array is a simple process. To do this, you can use the .to_numpy() method on the DataFrame. This will convert the DataFrame to a NumPy array and return the result. You may also specify the data type of the resulting array, if desired. The syntax of this method is df.to_numpy(dtype=None, copy=False). Once the array is created, you can use it for various operations. Examples of this are using the array for mathematical operations, data analysis, and visualization.


You can use the following syntax to convert a pandas DataFrame to a NumPy array:

df.to_numpy()

The following examples show how to use this syntax in practice.

Example 1: Convert DataFrame with Same Data Types

The following code shows how to convert a pandas DataFrame to a NumPy array when each of the columns in the DataFrame is the same data type:

import pandas as pd

#create data frame
df1 = pd.DataFrame({'rebounds': [7, 7, 8, 13, 7, 4],
                    'points': [5, 7, 7, 9, 12, 9],
                    'assists': [11, 8, 10, 6, 6, 5]})

#view data frame
print(df1)

   rebounds  points  assists
0         7       5       11
1         7       7        8
2         8       7       10
3        13       9        6
4         7      12        6
5         4       9        5

#convert DataFrame to NumPy array
new = df1.to_numpy()

#view NumPy array
print(new)

[[ 7  5 11]
 [ 7  7  8]
 [ 8  7 10]
 [13  9  6]
 [ 7 12  6]
 [ 4  9  5]]

#confirm that new is a NumPy array
print(type(new))

<class 'numpy.ndarray'> 

#view data type
print(new.dtype)

int64

The Numpy array has a data type of int64 since each column in the original pandas DataFrame was an integer.

Example 2: Convert DataFrame with Mixed Data Types

The following code shows how to convert a pandas DataFrame to a NumPy array when the columns in the DataFrame are not all the same data type:

import pandas as pd

#create data frame
df2 = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E', 'F'],
                    'points': [5, 7, 7, 9, 12, 9],
                    'assists': [11, 8, 10, 6, 6, 5]})

#view data frame
print(df2)

  player  points  assists
0      A       5       11
1      B       7        8
2      C       7       10
3      D       9        6
4      E      12        6
5      F       9        5

#convert DataFrame to NumPy array
new = df2.to_numpy()

#view NumPy array
print(new)

[['A' 5 11]
 ['B' 7 8]
 ['C' 7 10]
 ['D' 9 6]
 ['E' 12 6]
 ['F' 9 5]]

#confirm that new is a NumPy array
print(type(new))

<class 'numpy.ndarray'> 

#view data type
print(new.dtype)

object

The Numpy array has a data type of object since not every column in the original pandas DataFrame was the same data type.

Example 3: Convert DataFrame & Set NA Values

The following code shows how to convert a pandas DataFrame to a NumPy array and specify the values to be set for any NA values in the original DataFrame:

import pandas as pd

#create data frame
df3 = pd.DataFrame({'player': ['A', 'B', pd.NA, 'D', 'E', 'F'],
                    'points': [5, 7, pd.NA, 9, pd.NA, 9],
                    'assists': [11, 8, 10, 6, 6, 5]})

#view data frame
print(df3)

  player points  assists
0      A      5       11
1      B      7        8
2   <NA>   <NA>       10
3      D      9        6
4      E   <NA>        6
5      F      9        5

#convert DataFrame to NumPy array
new = df3.to_numpy(na_value='none')

#view NumPy array
print(new)

[['A' 5 11]
 ['B' 7 8]
 ['none' 'none' 10]
 ['D' 9 6]
 ['E' 'none' 6]
 ['F' 9 5]]

#confirm that new is a NumPy array
print(type(new))

<class 'numpy.ndarray'> 

#view data type
print(new.dtype)

object

x