|
""" |
|
Tests for np.foo applied to DataFrame, not necessarily ufuncs. |
|
""" |
|
import numpy as np |
|
|
|
from pandas import ( |
|
Categorical, |
|
DataFrame, |
|
) |
|
import pandas._testing as tm |
|
|
|
|
|
class TestAsArray: |
|
def test_asarray_homogeneous(self): |
|
df = DataFrame({"A": Categorical([1, 2]), "B": Categorical([1, 2])}) |
|
result = np.asarray(df) |
|
|
|
expected = np.array([[1, 1], [2, 2]], dtype="object") |
|
tm.assert_numpy_array_equal(result, expected) |
|
|
|
def test_np_sqrt(self, float_frame): |
|
with np.errstate(all="ignore"): |
|
result = np.sqrt(float_frame) |
|
assert isinstance(result, type(float_frame)) |
|
assert result.index.is_(float_frame.index) |
|
assert result.columns.is_(float_frame.columns) |
|
|
|
tm.assert_frame_equal(result, float_frame.apply(np.sqrt)) |
|
|
|
def test_sum_deprecated_axis_behavior(self): |
|
|
|
|
|
|
|
arr = np.random.default_rng(2).standard_normal((4, 3)) |
|
df = DataFrame(arr) |
|
|
|
msg = "The behavior of DataFrame.sum with axis=None is deprecated" |
|
with tm.assert_produces_warning( |
|
FutureWarning, match=msg, check_stacklevel=False |
|
): |
|
res = np.sum(df) |
|
|
|
with tm.assert_produces_warning(FutureWarning, match=msg): |
|
expected = df.sum(axis=None) |
|
tm.assert_series_equal(res, expected) |
|
|
|
def test_np_ravel(self): |
|
|
|
arr = np.array( |
|
[ |
|
[0.11197053, 0.44361564, -0.92589452], |
|
[0.05883648, -0.00948922, -0.26469934], |
|
] |
|
) |
|
|
|
result = np.ravel([DataFrame(batch.reshape(1, 3)) for batch in arr]) |
|
expected = np.array( |
|
[ |
|
0.11197053, |
|
0.44361564, |
|
-0.92589452, |
|
0.05883648, |
|
-0.00948922, |
|
-0.26469934, |
|
] |
|
) |
|
tm.assert_numpy_array_equal(result, expected) |
|
|
|
result = np.ravel(DataFrame(arr[0].reshape(1, 3), columns=["x1", "x2", "x3"])) |
|
expected = np.array([0.11197053, 0.44361564, -0.92589452]) |
|
tm.assert_numpy_array_equal(result, expected) |
|
|
|
result = np.ravel( |
|
[ |
|
DataFrame(batch.reshape(1, 3), columns=["x1", "x2", "x3"]) |
|
for batch in arr |
|
] |
|
) |
|
expected = np.array( |
|
[ |
|
0.11197053, |
|
0.44361564, |
|
-0.92589452, |
|
0.05883648, |
|
-0.00948922, |
|
-0.26469934, |
|
] |
|
) |
|
tm.assert_numpy_array_equal(result, expected) |
|
|