78

私はnumpy配列を持っています。要素の連続するすべてのトリプレットの平均である新しい配列を作成したいと考えています。したがって、新しい配列は元のサイズの 3 分の 1 になります。

例として:

 np.array([1,2,3,1,2,3,1,2,3])

配列を返す必要があります:

 np.array([2,2,2])

誰でもこれを行う効率的な方法を提案できますか? 空白を描いています。

4

3 に答える 3

130

配列arrの長さが 3 で割り切れる場合:

np.mean(arr.reshape(-1, 3), axis=1)

より高い次元の配列に再形成してから、追加の次元の 1 つで何らかの形式の縮小操作を実行することは、numpy プログラミングの定番です。

于 2013-04-11T18:39:30.427 に答える
0

受け入れられた回答を各列/機能の 2D 配列に適用するには:

arr.reshape(-1, downsample_ratio, arr.shape[1]).mean(axis = 1)
于 2021-09-03T23:44:47.003 に答える