diff options
author | Travis E. Oliphant <teoliphant@gmail.com> | 2012-07-17 19:26:39 -0700 |
---|---|---|
committer | Travis E. Oliphant <teoliphant@gmail.com> | 2012-07-17 19:26:39 -0700 |
commit | 578a4199a81e7464011661fcf8d46a8af2235db2 (patch) | |
tree | 58e1650c914153acceb0229fea16a546db0e46e0 /numpy/lib/function_base.py | |
parent | 0b2bfa9c13070b08b3632f15a3aa327146994cc4 (diff) | |
parent | 2c04244da264cb1665d6162ae119d2f05ad65150 (diff) | |
download | numpy-578a4199a81e7464011661fcf8d46a8af2235db2.tar.gz |
Merge pull request #352 from HackerSchool12/bugfix808
BF bug #808
Diffstat (limited to 'numpy/lib/function_base.py')
-rw-r--r-- | numpy/lib/function_base.py | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py index 1edfc4c6b..247f16560 100644 --- a/numpy/lib/function_base.py +++ b/numpy/lib/function_base.py @@ -3592,24 +3592,18 @@ def insert(arr, obj, values, axis=None): N = arr.shape[axis] newshape = list(arr.shape) if isinstance(obj, (int, long, integer)): + if (obj < 0): obj += N if obj < 0 or obj > N: raise ValueError( "index (%d) out of range (0<=index<=%d) "\ "in dimension %d" % (obj, N, axis)) - newshape[axis] += 1; - new = empty(newshape, arr.dtype, arr.flags.fnc) - slobj[axis] = slice(None, obj) - new[slobj] = arr[slobj] - slobj[axis] = obj - new[slobj] = values - slobj[axis] = slice(obj+1,None) - slobj2 = [slice(None)]*ndim - slobj2[axis] = slice(obj,None) - new[slobj] = arr[slobj2] - if wrap: - return wrap(new) - return new + + if isinstance(values, (int, long, integer)): + obj = [obj] + else: + obj = [obj] * len(values) + elif isinstance(obj, slice): # turn it into a range object |