【发布时间】:2017-03-12 05:02:45
【问题描述】:
我正在处理一个由多个列表组成的数组。在每个子列表中,我想取平均值和标准。偏差,并将它们写在 Excel 表中。
我的代码完成了它的工作,但它让我很头疼,因为我觉得我根本没有有效地使用 python,尤其是在步骤 (2) 中,我逐步使用 numpy。另外,我不明白为什么我必须在步骤(3)中进行修改,以便将数据(“total”)以我可以提供给 openpyxl 编写器(“total_list”)的形式提供。我将不胜感激任何帮助使它更优雅,这是我的代码:
import numpy as np
from openpyxl import Workbook
from itertools import chain
# (1) Make up sample array:
arr = [[1,1,3], [3,4,2], [4,4,5], [6,6,5]]
# (2) Make up lists containing average values and std. deviations
avg = []
dev = []
for i in arr:
avg.append(np.mean(i))
dev.append(np.std(i))
# (3) Make an alternating list (avg 1, dev 1, avg 2, dev 2, ...)
total = chain.from_iterable( zip( avg, dev ) )
# (4) Make an alternative list that can be fed to the xlsx writer
total_list = []
for i in total:
total_list.append(i)
# Write to Excel file
wb = Workbook()
ws = wb.active
ws.append(total_list)
wb.save("temp.xlsx")
【问题讨论】:
-
你能发布一个想要的数据集吗?你希望它是什么形状的?
-
您在尝试执行此操作时遇到了哪些问题? openpyxl 支持 numpy 类型。
标签: numpy python-3.5 openpyxl