diff --git a/pandas/core/arrays/numpy_.py b/pandas/core/arrays/numpy_.py index 9d174a49b5db1..56c9efcccdd98 100644 --- a/pandas/core/arrays/numpy_.py +++ b/pandas/core/arrays/numpy_.py @@ -118,8 +118,7 @@ def __init__( f"'values' must be a NumPy array, not {type(values).__name__}" ) - if values.ndim == 0: - # Technically we support 2, but do not advertise that fact. + if values.ndim != 1: raise ValueError("NumpyExtensionArray must be 1-dimensional.") if copy: diff --git a/pandas/tests/arrays/test_array.py b/pandas/tests/arrays/test_array.py index cd78dfd6f343a..29cfb1522cbf6 100644 --- a/pandas/tests/arrays/test_array.py +++ b/pandas/tests/arrays/test_array.py @@ -451,10 +451,16 @@ def test_array_inference_fails(data): tm.assert_extension_array_equal(result, expected) -@pytest.mark.parametrize("data", [np.array(0)]) -def test_nd_raises(data): +@pytest.mark.parametrize( + "data,dtype", + [ + (np.array(0), "int64"), + (np.array([[1, 2], ["a", "b"]]), object), + ], +) +def test_nd_raises(data, dtype): with pytest.raises(ValueError, match="NumpyExtensionArray must be 1-dimensional"): - pd.array(data, dtype="int64") + pd.array(data, dtype=dtype) def test_scalar_raises():