Skip to main content
`Ctrl`+`K`

# pandas.DataFrame.to_numpy

DataFrame.to_numpy(dtype=None, copy=False, na_value=<no_default>)

  Convert the DataFrame to a NumPy array.

  By default, the dtype of the returned array will be the common NumPy dtype of all types in the DataFrame. For example, if the dtypes are `float16` and `float32`, the results dtype will be `float32`. This may require copying data and coercing values, which may be expensive.

  Parameters:
    dtype str or numpy.dtype, optional

      The dtype to pass to `numpy.asarray()`.

    copy bool, default False

      Whether to ensure that the returned value is not a view on another array. Note that `copy=False` does not ensure that `to_numpy()` is no-copy. Rather, `copy=True` ensure that a copy is made, even if not strictly necessary.

    na_value Any, optional

      The value to use for missing values. The default value depends on dtype and the dtypes of the DataFrame columns.

  Returns:
    numpy.ndarray

      The NumPy array representing the values in the DataFrame.

  See also

  `Series.to_numpy`

    Similar method for Series.

  Examples

      >>> pd.DataFrame({"A": [1, 2], "B": [3, 4]}).to_numpy()
      array([[1, 3],
             [2, 4]])

  With heterogeneous data, the lowest common type will have to be used.

      >>> df = pd.DataFrame({"A": [1, 2], "B": [3.0, 4.5]})
      >>> df.to_numpy()
      array([[1. , 3. ],
             [2. , 4.5]])

  For a mix of numeric and non-numeric types, the output array will have object dtype.

      >>> df["C"] = pd.date_range("2000", periods=2)
      >>> df.to_numpy()
      array([[1, 3.0, Timestamp('2000-01-01 00:00:00')],
             [2, 4.5, Timestamp('2000-01-02 00:00:00')]], dtype=object)