From d4bc1b6795912391473a56f6e757e39bd7b63676 Mon Sep 17 00:00:00 2001 From: Eric Wieser Date: Mon, 11 Dec 2017 22:28:35 -0800 Subject: ENH: Allow np.r_ to accept 0d arrays Fixes gh-9233 --- numpy/lib/index_tricks.py | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) (limited to 'numpy/lib/index_tricks.py') diff --git a/numpy/lib/index_tricks.py b/numpy/lib/index_tricks.py index 650b37f25..b2c178f10 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 + if (trans1d < 0): + trans1d += k2 + 1 + defaxes = list(range(ndmin)) + k1 = trans1d + 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) -- cgit v1.2.1 From e7d571396e92b670a0e8de6e50366ba1dbee3c6e Mon Sep 17 00:00:00 2001 From: Eric Wieser Date: Mon, 11 Dec 2017 22:33:00 -0800 Subject: BUG: Fix mutating state between items in np,r_ It's not at all clear what trans1d is supposed to do here, but it's certainly not supposed to change value between elements! --- numpy/lib/index_tricks.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'numpy/lib/index_tricks.py') diff --git a/numpy/lib/index_tricks.py b/numpy/lib/index_tricks.py index b2c178f10..43fdc5627 100644 --- a/numpy/lib/index_tricks.py +++ b/numpy/lib/index_tricks.py @@ -316,10 +316,10 @@ class AxisConcatenator(object): newobj = array(item, copy=False, subok=True, ndmin=ndmin) if trans1d != -1 and item_ndim < ndmin: k2 = ndmin - item_ndim - if (trans1d < 0): - trans1d += k2 + 1 - defaxes = list(range(ndmin)) 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) -- cgit v1.2.1