这是一种方法 -
def replace_irregular_groupings(a, N=3):
n = len(a)
m = N*(n//N)
if m!=n:
a[m:] = a[m-1]
return a
样本运行 -
In [125]: replace_irregular_groupings(np.arange(9) // 3 + 1)
Out[125]: array([1, 1, 1, 2, 2, 2, 3, 3, 3])
In [126]: replace_irregular_groupings(np.arange(10) // 3 + 1)
Out[126]: array([1, 1, 1, 2, 2, 2, 3, 3, 3, 3])
In [127]: replace_irregular_groupings(np.arange(11) // 3 + 1)
Out[127]: array([1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3])
In [128]: replace_irregular_groupings(np.arange(12) // 3 + 1)
Out[128]: array([1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4])