Skip to content

Commit 37de1d0

Browse files
committed
Add order parameter to {zero, ones, full}[_like].
Fixes #514.
1 parent bfabaa0 commit 37de1d0

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

sparse/_common.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -1348,7 +1348,7 @@ def eye(N, M=None, k=0, dtype=float, format="coo", **kwargs):
13481348
).asformat(format, **kwargs)
13491349

13501350

1351-
def full(shape, fill_value, dtype=None, format="coo", **kwargs):
1351+
def full(shape, fill_value, dtype=None, format="coo", order="C", **kwargs):
13521352
"""Return a SparseArray of given shape and type, filled with `fill_value`.
13531353
13541354
Parameters
@@ -1364,6 +1364,9 @@ def full(shape, fill_value, dtype=None, format="coo", **kwargs):
13641364
A format string.
13651365
compressed_axes : iterable, optional
13661366
The axes to compress if returning a GCXS array.
1367+
order : {'C', None}
1368+
Values except these are not currently supported and raise a
1369+
NotImplementedError.
13671370
13681371
Returns
13691372
-------
@@ -1385,6 +1388,8 @@ def full(shape, fill_value, dtype=None, format="coo", **kwargs):
13851388
dtype = np.array(fill_value).dtype
13861389
if not isinstance(shape, tuple):
13871390
shape = (shape,)
1391+
if order not in {"C", None}:
1392+
raise NotImplementedError("Currently, only 'C' and None are supported.")
13881393
data = np.empty(0, dtype=dtype)
13891394
coords = np.empty((len(shape), 0), dtype=np.intp)
13901395
return COO(

sparse/tests/test_array_function.py

+14-1
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,17 @@ def test_property(func):
7878

7979
def test_broadcast_to_scalar():
8080
s = sparse.COO.from_numpy([0, 0, 1, 2])
81-
np.broadcast_to(np.zeros_like(s, shape=()), (3,))
81+
actual = np.broadcast_to(np.zeros_like(s, shape=()), (3,))
82+
expected = np.broadcast_to(np.zeros_like(s.todense(), shape=()), (3,))
83+
84+
assert isinstance(actual, sparse.COO)
85+
assert_eq(actual, expected)
86+
87+
88+
def test_zeros_like_order():
89+
s = sparse.COO.from_numpy([0, 0, 1, 2])
90+
actual = np.zeros_like(s, order="C")
91+
expected = np.zeros_like(s.todense(), order="C")
92+
93+
assert isinstance(actual, sparse.COO)
94+
assert_eq(actual, expected)

0 commit comments

Comments
 (0)