私は1次元配列を持っています。私は5要素ごとに最大値を計算したいと思います。困難な部分は、配列の長さは5の倍数でもなくても、任意の値にすることができます。例えば任意の長さを持つ1つの配列の5要素ごとの最大値、python3
arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
第5の要素は0〜4であるので、最大値は4です。 2番目の5つの要素は5〜9なので、最大値は9です。最後の部分のみが3つの数字、10〜12を有し、最大値は、期待される結果は、この特定の例では、13個の数字を有すること
result = [4, 9, 12]
注あろう12 であるが、実際には他の値であってもよいです。
最初の考えは、5つの数字の倍数(N * 5)が正確にある場合、2次元配列(N行と5列)にarrを変形し、np.amaxを使用して各行の最大値。例えば、N = 4
arr = np.arange(20)
arr = arr.reshape(arr.shape[0]/5, 5)
b = np.amax(arr, axis=1)
を想定しかし、難しいことは、配列の長さは、これを効率的に行うにはどのように5
の非倍数になることができますか?ありがとう?ところで
は、私は、Python 3に
はスライス表記はIndexErrorが発生しないので、これは任意の長さのリスト/配列で動作します追加する価値があるかもしれません。 – DeepSpace