summaryrefslogtreecommitdiff
path: root/numpy/lib
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2017-12-12 11:40:55 -0700
committerGitHub <noreply@github.com>2017-12-12 11:40:55 -0700
commit22d917776b80dc7cef683fc17f4ea15b1ce98fcc (patch)
treee0c54af1bcec936d9a3cc12f5b0012d7f5a1ff0f /numpy/lib
parent0300a3d32ad70f7ce23054360852d872bacca46f (diff)
parente7d571396e92b670a0e8de6e50366ba1dbee3c6e (diff)
downloadnumpy-22d917776b80dc7cef683fc17f4ea15b1ce98fcc.tar.gz
Merge pull request #10207 from eric-wieser/np.r_-scalars
ENH: Allow np.r_ to accept 0d arrays
Diffstat (limited to 'numpy/lib')
-rw-r--r--numpy/lib/index_tricks.py27
-rw-r--r--numpy/lib/tests/test_index_tricks.py5
2 files changed, 16 insertions, 16 deletions
diff --git a/numpy/lib/index_tricks.py b/numpy/lib/index_tricks.py
index 650b37f25..43fdc5627 100644
--- a/numpy/lib/index_tricks.py
+++ b/numpy/lib/index_tricks.py
@@ -5,7 +5,7 @@ import math
import numpy.core.numeric as _nx
from numpy.core.numeric import (
- asarray, ScalarType, array, alltrue, cumprod, arange
+ asarray, ScalarType, array, alltrue, cumprod, arange, ndim
)
from numpy.core.numerictypes import find_common_type, issubdtype
@@ -312,21 +312,16 @@ class AxisConcatenator(object):
scalar = True
scalartypes.append(newobj.dtype)
else:
- newobj = item
- if ndmin > 1:
- tempobj = array(newobj, copy=False, subok=True)
- newobj = array(newobj, copy=False, subok=True,
- ndmin=ndmin)
- if trans1d != -1 and tempobj.ndim < ndmin:
- k2 = ndmin-tempobj.ndim
- if (trans1d < 0):
- trans1d += k2 + 1
- defaxes = list(range(ndmin))
- k1 = trans1d
- axes = defaxes[:k1] + defaxes[k2:] + \
- defaxes[k1:k2]
- newobj = newobj.transpose(axes)
- del tempobj
+ item_ndim = ndim(item)
+ newobj = array(item, copy=False, subok=True, ndmin=ndmin)
+ if trans1d != -1 and item_ndim < ndmin:
+ k2 = ndmin - item_ndim
+ k1 = trans1d
+ if k1 < 0:
+ k1 += k2 + 1
+ defaxes = list(range(ndmin))
+ axes = defaxes[:k1] + defaxes[k2:] + defaxes[k1:k2]
+ newobj = newobj.transpose(axes)
objs.append(newobj)
if not scalar and isinstance(newobj, _nx.ndarray):
arraytypes.append(newobj.dtype)
diff --git a/numpy/lib/tests/test_index_tricks.py b/numpy/lib/tests/test_index_tricks.py
index 1d5efef86..b5e06dad0 100644
--- a/numpy/lib/tests/test_index_tricks.py
+++ b/numpy/lib/tests/test_index_tricks.py
@@ -216,6 +216,11 @@ class TestConcatenator(object):
assert_equal(actual, expected)
assert_equal(type(actual), type(expected))
+ def test_0d(self):
+ assert_equal(r_[0, np.array(1), 2], [0, 1, 2])
+ assert_equal(r_[[0, 1, 2], np.array(3)], [0, 1, 2, 3])
+ assert_equal(r_[np.array(0), [1, 2, 3]], [0, 1, 2, 3])
+
class TestNdenumerate(object):
def test_basic(self):