diff options
author | Marten van Kerkwijk <mhvk@astro.utoronto.ca> | 2017-11-30 12:50:50 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-30 12:50:50 -0500 |
commit | 426b66b033517b898f3a3a370da3a4bbcdba55f9 (patch) | |
tree | 8f0f7e38bf03963ac2d120351c72b0bac0f1beba /numpy/core/arrayprint.py | |
parent | d7f34e9e7bf36a63cdd0921bff864e62e2a4e51b (diff) | |
parent | e94500bb40827729332db7aafd9dec0e0205f077 (diff) | |
download | numpy-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.py | 33 |
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 """ |