test_to_numpy.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import numpy as np
  2. import pandas.util._test_decorators as td
  3. from pandas import (
  4. DataFrame,
  5. Timestamp,
  6. )
  7. import pandas._testing as tm
  8. class TestToNumpy:
  9. def test_to_numpy(self):
  10. df = DataFrame({"A": [1, 2], "B": [3, 4.5]})
  11. expected = np.array([[1, 3], [2, 4.5]])
  12. result = df.to_numpy()
  13. tm.assert_numpy_array_equal(result, expected)
  14. def test_to_numpy_dtype(self):
  15. df = DataFrame({"A": [1, 2], "B": [3, 4.5]})
  16. expected = np.array([[1, 3], [2, 4]], dtype="int64")
  17. result = df.to_numpy(dtype="int64")
  18. tm.assert_numpy_array_equal(result, expected)
  19. @td.skip_array_manager_invalid_test
  20. def test_to_numpy_copy(self, using_copy_on_write):
  21. arr = np.random.randn(4, 3)
  22. df = DataFrame(arr)
  23. if using_copy_on_write:
  24. assert df.values.base is not arr
  25. assert df.to_numpy(copy=False).base is df.values.base
  26. else:
  27. assert df.values.base is arr
  28. assert df.to_numpy(copy=False).base is arr
  29. assert df.to_numpy(copy=True).base is not arr
  30. def test_to_numpy_mixed_dtype_to_str(self):
  31. # https://github.com/pandas-dev/pandas/issues/35455
  32. df = DataFrame([[Timestamp("2020-01-01 00:00:00"), 100.0]])
  33. result = df.to_numpy(dtype=str)
  34. expected = np.array([["2020-01-01 00:00:00", "100.0"]], dtype=str)
  35. tm.assert_numpy_array_equal(result, expected)