summaryrefslogtreecommitdiff
path: root/numpy/core/arrayprint.py
diff options
context:
space:
mode:
authorMarten van Kerkwijk <mhvk@astro.utoronto.ca>2017-11-30 12:50:50 -0500
committerGitHub <noreply@github.com>2017-11-30 12:50:50 -0500
commit426b66b033517b898f3a3a370da3a4bbcdba55f9 (patch)
tree8f0f7e38bf03963ac2d120351c72b0bac0f1beba /numpy/core/arrayprint.py
parentd7f34e9e7bf36a63cdd0921bff864e62e2a4e51b (diff)
parente94500bb40827729332db7aafd9dec0e0205f077 (diff)
downloadnumpy-426b66b033517b898f3a3a370da3a4bbcdba55f9.tar.gz
Merge pull request #10130 from eric-wieser/tidy-_leading_trailing
MAINT: Simplify _leading_trailing
Diffstat (limited to 'numpy/core/arrayprint.py')
-rw-r--r--numpy/core/arrayprint.py33
1 files changed, 19 insertions, 14 deletions
diff --git a/numpy/core/arrayprint.py b/numpy/core/arrayprint.py
index 3fad5d17d..93a659616 100644
--- a/numpy/core/arrayprint.py
+++ b/numpy/core/arrayprint.py
@@ -272,22 +272,27 @@ def get_printoptions():
"""
return _format_options.copy()
-def _leading_trailing(a):
+
+def _leading_trailing(a, index=()):
+ """
+ Keep only the N-D corners (leading and trailing edges) of an array.
+
+ Should be passed a base-class ndarray, since it makes no guarantees about
+ preserving subclasses.
+ """
edgeitems = _format_options['edgeitems']
- if a.ndim == 1:
- if len(a) > 2*edgeitems:
- b = concatenate((a[:edgeitems], a[-edgeitems:]))
- else:
- b = a
+ axis = len(index)
+ if axis == a.ndim:
+ return a[index]
+
+ if a.shape[axis] > 2*edgeitems:
+ return concatenate((
+ _leading_trailing(a, index + np.index_exp[ :edgeitems]),
+ _leading_trailing(a, index + np.index_exp[-edgeitems:])
+ ), axis=axis)
else:
- if len(a) > 2*edgeitems:
- l = [_leading_trailing(a[i]) for i in range(min(len(a), edgeitems))]
- l.extend([_leading_trailing(a[-i]) for i in range(
- min(len(a), edgeitems), 0, -1)])
- else:
- l = [_leading_trailing(a[i]) for i in range(0, len(a))]
- b = concatenate(tuple(l))
- return b
+ return _leading_trailing(a, index + np.index_exp[:])
+
def _object_format(o):
""" Object arrays containing lists should be printed unambiguously """