diff options
author | jayvius <jay.bourque@continuum.io> | 2012-07-12 13:37:28 -0500 |
---|---|---|
committer | Jay Bourque <jay.bourque@continuum.io> | 2012-07-17 16:05:10 -0500 |
commit | 0c09e1f184fde335f3533b0b9ef6ea46379309db (patch) | |
tree | 9ce5e71a40fdae4e7d1cedc86d0c523c1213ebf7 /numpy/core/_internal.py | |
parent | 6363bb7cbb1d0e292e8af87f92a28faf781d3d95 (diff) | |
download | numpy-0c09e1f184fde335f3533b0b9ef6ea46379309db.tar.gz |
fix previous commit to return copy of view instead of view
Diffstat (limited to 'numpy/core/_internal.py')
-rw-r--r-- | numpy/core/_internal.py | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/numpy/core/_internal.py b/numpy/core/_internal.py index 29d21a9bc..88a41fd0d 100644 --- a/numpy/core/_internal.py +++ b/numpy/core/_internal.py @@ -286,26 +286,17 @@ def _newnames(datatype, order): # construct a new array with just those fields copied over def _index_fields(ary, fields): from multiarray import empty, dtype + from numpy import copy dt = ary.dtype - new_dtype = [(name, dt[name]) for name in fields if name in dt.names] - if ary.flags.f_contiguous: - order = 'F' - else: - order = 'C' - - newarray = empty(ary.shape, dtype=new_dtype, order=order) - - for name in fields: - newarray[name] = ary[name] names = [name for name in fields if name in dt.names] - formats = dt.fields[name][0] for name in fields if name in dt.names] + formats = [dt.fields[name][0] for name in fields if name in dt.names] offsets = [dt.fields[name][1] for name in fields if name in dt.names] - view_dtype = {'names':names, 'formats':formats, 'offsets':offsets} + view_dtype = {'names':names, 'formats':formats, 'offsets':offsets, 'itemsize':dt.itemsize} view = ary.view(dtype=view_dtype) - return newarray + return copy(view) # Given a string containing a PEP 3118 format specifier, # construct a Numpy dtype |