我有一個一維數組。我想計算每5個元素的最大值。困難的部分是數組的長度可以是任何值,或者是5的倍數。一個數組中每5個元素的最大值爲任意長度,python3
例如
arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
的第一5個元素是0〜4,因此,最大值爲4;第二個5個元素是5到9,所以最大值是9;最後部分僅具有3個數字爲10〜12,最大值爲12。 預期結果將是
result = [4, 9, 12]
注意,此具體示例具有13號,但實際上,它可以是任何其它值。
我的第一個想法是,當有5個數字(N * 5)的倍數時,我可以將arr重塑爲2維數組(N行和5列),然後使用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