我有一個CSV文件的行平均:計算選定列
#col1 #col2 ... #col253
33, 123, ... 99
19, 409, ... 24
34, 239, ... 60
... ... ... ..
和一本字典,其值存儲選定列的開始和結束索引:
d = {
'win': [(11, 55), (194, 233)],
'lose': [(72, 111), (133, 172)],
'neut': [(0, 10), (51, 71), (112, 132), (173, 193)]
}
我的目標是計算字典中某個鍵的所有選定列的每行平均值。
例如,對於第一行的'win'
塊,請選擇11, 12, ...55, 194, 195,...233
列並計算平均值。
我現在使用的是什麼:
x = np.loadtxt('filename.csv', delimiter=',')
for line in x:
selected = [line[start:end + 1] for (start, end) in d['win']]
...
selected
將[array([39, 12, 94,...]), array([3, 4, ...])]
不能傳遞給np.mean()
。
因此,列表中的數組應該合併爲一個,我不知道如何優雅地做,或者迭代地添加所有數字,然後取平均值,我認爲這很醜。
被修改:
醜陋方法可以是:
average = sum(map(sum, selected))/sum(map(len, selected))
您是在尋找每行的總平均值還是每行的平均值?從你的例子看,它看起來像是每行分開的意思。 –
@IljaEverilä對於每一行,抱歉的描述不好。 – Spike