summaryrefslogtreecommitdiff
path: root/numpy/lib/recfunctions.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/lib/recfunctions.py')
-rw-r--r--numpy/lib/recfunctions.py17
1 files changed, 6 insertions, 11 deletions
diff --git a/numpy/lib/recfunctions.py b/numpy/lib/recfunctions.py
index 6e2d1726f..e9ba38f46 100644
--- a/numpy/lib/recfunctions.py
+++ b/numpy/lib/recfunctions.py
@@ -93,17 +93,12 @@ def get_fieldspec(dtype):
# .descr returns a nameless field, so we should too
return [('', dtype)]
else:
- # extract the titles of the fields
- name_titles = {}
- for d in dtype.descr:
- name_title = d[0]
- if isinstance(name_title, tuple):
- name = name_title[1]
- else:
- name = name_title
- name_titles[name] = name_title
-
- return [(name_titles[name], dtype[name]) for name in dtype.names]
+ fields = ((name, dtype.fields[name]) for name in dtype.names)
+ # keep any titles, if present
+ return [
+ (name if len(f) == 2 else (f[2], name), f[0])
+ for name, f in fields
+ ]
def get_names(adtype):