【发布时间】:2014-01-01 13:33:39
【问题描述】:
假设我有一个 N*M*X 维数组“data”,其中 N 和 M 是固定的,但 X 对于每个条目 data[n][m] 是可变的。
(编辑:澄清一下,我只是在用于读取数据的 3D python 列表上使用了 np.array(),因此 numpy 数组的维度为 N*M,其条目是可变长度列表)
我现在想计算 X 维上的平均值,这样我就得到了一个 N*M 维数组。将 np.average/mean 与轴参数一起使用是行不通的,所以我现在这样做的方式只是遍历 N 和 M 并将手动计算的平均值附加到一个新列表中,但这并没有感觉很“蟒蛇”:
avgData=[]
for n in data:
temp=[]
for m in n:
temp.append(np.average(m))
avgData.append(temp)
我在这里遗漏了一些明显的东西吗?我正在尝试更新我的 Python 技能,因此非常欢迎有趣/多样的回答! :)
谢谢!
【问题讨论】:
-
数据是如何存储的? numpy 没有提供任何方法来处理锯齿状数组(就 numpy 而言,
X始终是一个常量),因此您必须使用 something 或使用掩码数组或 . .. -
@mgilson 编辑了问题。我刚刚有一个 3D python 列表并在上面调用了 np.array() 。所以我猜这是列表对象的二维数组?
-
如果你不知道数据是如何布局的,我们应该怎么做?您可以使用数组的
.shape和.dtype属性来检查这一点。
标签: python arrays numpy jagged-arrays multidimensional-array