我想從一定大小的列表(或數組)中咬出一塊,返回該咬的平均值,然後繼續下一個咬,然後再重做一遍。有沒有辦法做到這一點,而不寫一個for循環?如何平均Python中列表的某些大小的子部分?
In [1]: import numpy as np
In [2]: x = range(10)
In [3]: np.average(x[:4])
Out[3]: 1.5
In [4]: np.average(x[4:8])
Out[4]: 5.5
In [5]: np.average(x[8:])
Out[5]: 8.5
我正在尋找像,np.average(X [:bitesize = 4])返回:[1.5,5.5,8.5]。
我已經看過切片數組,並逐步通過數組,但我還沒有找到任何像我想要發生的事情。
你爲什麼不想要寫一個for循環?當人們提出的問題試圖在沒有任何控制結構的情況下做某些事情時,這往往表明他們處於不幸的「儘可能以一條線」的心態。 如果您擔心的是性能,那麼請說出來,並舉例說明您正在處理的數據大小,以便人們知道要測試什麼。 – 2010-01-13 02:44:20
我可以寫一個for循環,但是這和我爲循環編寫的許多其他列表或數組操作一樣,直到我找到可以逐步通過數組爲止。所以我問。 此外,我將寫入的for循環將聲明一個新列表,啓動一個for循環,運行if語句(或兩個),將值附加到我的新列表中,並可能更多。因此,一個人已經回答的for循環對於我來說是清晰的,在我的編程意義上是非悲劇的。 – JBWhitmore 2010-01-13 02:53:54