Skip to content

Commit

Permalink
API, DOC: Clarify and enforce array to be 1-D during SparseArray cons…
Browse files Browse the repository at this point in the history
…truction

Closes gh-12794.
  • Loading branch information
gfyoung committed Apr 27, 2016
1 parent 8001e15 commit 0746e1d
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
8 changes: 5 additions & 3 deletions pandas/sparse/array.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,11 @@ def _wrap_result(name, data, sparse_index, fill_value):


class SparseArray(PandasObject, np.ndarray):
"""Data structure for labeled, sparse floating point data
"""Data structure for labeled, sparse floating point 1-D data
Parameters
----------
data : {array-like, Series, SparseSeries, dict}
data : {array-like (1-D), Series, SparseSeries, dict}
kind : {'block', 'integer'}
fill_value : float
Defaults to NaN (code for missing)
Expand Down Expand Up @@ -563,7 +563,9 @@ def make_sparse(arr, kind='block', fill_value=nan):
"""

arr = _sanitize_values(arr)
length = len(arr)

if np.ndim(arr) > 1:
raise TypeError("expected dimension <= 1 data")

if np.isnan(fill_value):
mask = ~np.isnan(arr)
Expand Down
4 changes: 4 additions & 0 deletions pandas/sparse/tests/test_array.py
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,10 @@ def setslice():
assertRaisesRegexp(TypeError, "item assignment", setitem)
assertRaisesRegexp(TypeError, "item assignment", setslice)

def test_constructor_from_too_large_array(self):
assertRaisesRegexp(TypeError, "expected dimension <= 1 data",
SparseArray, np.arange(10).reshape((2, 5)))

def test_constructor_from_sparse(self):
res = SparseArray(self.zarr)
self.assertEqual(res.fill_value, 0)
Expand Down

0 comments on commit 0746e1d

Please sign in to comment.