Предполагая, что есть целое число ячеек, вы можете сделать это с изменением формы:
old_data = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8])
bin_size = 3
new_data = old_data.reshape(-1, bin_size).sum(axis=1)
new_data
будет иметь желаемое значение:
array([ 3, 12, 21])
Если bin_size
не делится равномерно на old_data.size
, вместо этого вы можете использовать resize
:
old_data = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
bin_size = 3
old_data.resize(old_data.size//bin_size + 1, bin_size)
new_data = old_data.sum(axis=1)
new_data
будет иметь значение:
array([ 3, 12, 21, 19])
Использование *У 1018 * есть обратная сторона изменения old_data
, поэтому, если вы хотите сохранить old_data
, вам, вероятно, следует сделать копию этого до того, как вы сделаете resize
.