diff options
-rw-r--r-- | numpy/core/_internal.py | 7 | ||||
-rw-r--r-- | numpy/core/src/multiarray/mapping.c | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/numpy/core/_internal.py b/numpy/core/_internal.py index 309b53c44..29d21a9bc 100644 --- a/numpy/core/_internal.py +++ b/numpy/core/_internal.py @@ -298,6 +298,13 @@ def _index_fields(ary, fields): 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] + offsets = [dt.fields[name][1] for name in fields if name in dt.names] + + view_dtype = {'names':names, 'formats':formats, 'offsets':offsets} + view = ary.view(dtype=view_dtype) + return newarray # Given a string containing a PEP 3118 format specifier, diff --git a/numpy/core/src/multiarray/mapping.c b/numpy/core/src/multiarray/mapping.c index cdefb9982..b2643f89f 100644 --- a/numpy/core/src/multiarray/mapping.c +++ b/numpy/core/src/multiarray/mapping.c @@ -975,6 +975,7 @@ array_subscript(PyArrayObject *self, PyObject *op) } obj = PyObject_CallMethod(_numpy_internal, "_index_fields", "OO", self, op); + PyArray_ENABLEFLAGS((PyArrayObject*)obj, NPY_ARRAY_WARN_ON_WRITE); Py_DECREF(_numpy_internal); return obj; } |