我是Python的新手。我列举了一大串数据,如下所示,并想找到每一行的平均值。
for index, line in enumerate (data):
#calculate the mean
然而,这组特定数据的行是这样的:
[array([[2.3325655e-10, 2.4973504e-10],
[1.3025138e-10, 1.3025231e-10]], dtype=float32)].
我想分别找到两个2x1s的平均值,然后是两个平均值的平均值。所以它输出一个数字。提前谢谢。
您可能不需要枚举整个列表来实现您想要的内容。你可以使用列表理解分两步来完成。
例如,
data = [[2.3325655e-10, 2.4973504e-10],
[1.3025138e-10, 1.3025231e-10]]
# Calculate the average for 2X1s or each row
avgs_along_x = [sum(line)/len(line) for line in data]
# Calculate the average along y
avg_along_y = sum(avgs_along_x)/len(avgs_along_x)
python中还有其他方法可以计算列表的平均值。你可以在这里读到它们。
如果您正在使用numpy,这可以在一行中完成。
import numpy as np
np.average(data, 1) # calculate the mean along x-axes denoted as 1
# To get what you want, we can pass tuples of axes.
np.average(data, (1,0))