summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Kirkham <kirkhamj@janelia.hhmi.org>2016-01-22 17:31:13 -0500
committerJohn Kirkham <kirkhamj@janelia.hhmi.org>2016-01-22 18:15:44 -0500
commit43c6a89128347928c5fe26f67ba2a0a022f00822 (patch)
tree66e843ac0d8bd4a3440391006fc2601b7eb46b04
parentbc4a17ed89004ed63558a3e7f0bd035580777aa7 (diff)
downloadnumpy-43c6a89128347928c5fe26f67ba2a0a022f00822.tar.gz
BUG: Make sure that the `ord=0` case returns a float.
-rw-r--r--numpy/linalg/linalg.py2
-rw-r--r--numpy/linalg/tests/test_linalg.py5
2 files changed, 2 insertions, 5 deletions
diff --git a/numpy/linalg/linalg.py b/numpy/linalg/linalg.py
index fe2031efb..f333bde47 100644
--- a/numpy/linalg/linalg.py
+++ b/numpy/linalg/linalg.py
@@ -2150,7 +2150,7 @@ def norm(x, ord=None, axis=None, keepdims=False):
return abs(x).min(axis=axis, keepdims=keepdims)
elif ord == 0:
# Zero norm
- return (x != 0).sum(axis=axis, keepdims=keepdims)
+ return (x != 0).astype(float).sum(axis=axis, keepdims=keepdims)
elif ord == 1:
# special case for speedup
return add.reduce(abs(x), axis=axis, keepdims=keepdims)
diff --git a/numpy/linalg/tests/test_linalg.py b/numpy/linalg/tests/test_linalg.py
index 5c6142b7b..60486d4ce 100644
--- a/numpy/linalg/tests/test_linalg.py
+++ b/numpy/linalg/tests/test_linalg.py
@@ -868,10 +868,7 @@ class _TestNorm(object):
assert_almost_equal(an, 0.0)
an = norm(at, 0)
- # Trying to assert equality to `np.dtype(int).type` fails on
- # 32-bit platforms as it still becomes `np.int64` instead of
- # `np.int32`. So, this is our workaround.
- assert_(an.dtype.type in [np.int32, np.int64])
+ assert_(issubclass(an.dtype.type, np.floating))
assert_almost_equal(an, 2)
an = norm(at, 1)