【发布时间】:2013-03-14 01:11:19
【问题描述】:
我想通过将每个维度中其形状的上限减一来减小任意等级的 numpy ndarray 的大小。数组值应该不相对于它们的原始索引移动。
所以,
[N] becomes [N-1]
[N,M] becomes [N-1, M-1]
[N,M,P] becomes [N-1, M-1, P-1], etc.
这应该由事先不知道数组排名的函数来处理。
import numpy as np
def truncator( array ):
# flailing
return truncated_array
>>> a
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> truncator(a)
array([[0, 1],
[3, 4]])
我曾考虑过reshape 和resize,但没有成功。提前知道数组排名我知道如何使用像truncated_array = array[:-1,:-1] 这样的视图,但我不知道如何使该概念适用于任意排名。有没有固定宽度的Elipses、...?这可能会有所帮助。
【问题讨论】: